GitHub - Frameio/fioctl: A command-line interface to the Frame.io API.

Installation

PyPi

The cli requires python3 to take advantage of it's more modern threading capabilities. So you need to do:

From Source

git clone git@github.com:Frameio/fioctl.git
cd fioctl && python3 setup.py install

Note that it does currently require python3.

Set Up

First, generate an access token in frame.io and configure with:

This will ask you to set a profile name, and input your token.

The cli supports multiple profiles in the event you have multiple tokens that can be configured. They can be specified like

fioctl config first_profile.bearer_token <token1>
fioctl config second_profile.bearer_token <token2>
fioctl config profiles.default first_profile

To see available commands, run:

Basics

Commands are organized around core API types, like comments, assets, etc.

Any command result can be formatted as json, csv, or as table (usually default), using the --format <format> option. Some commands, like fioctl assets traverse <id> support tree formatting as well. In addition, a default table format can be set with fioctl config table.fmt <fmt>

Additionally, you can select the columns to project in a command with the --columns col1,col2,... option. If you want to select a nested attribute in a column, use the . operator.

To preserve formatting for a command family, like projects, do fioctl config projects.columns col1,col2,.... To set a new table format, do fioctl config table.fmt <new_table_fmt>. Look at the python docs for tabulate to see the options available.

Update commands usually accept an option like --values col=val,col.nested=other_val

Developing

If you'd got an idea for something that you think could make this CLI tool better, here are some tips for getting a development environment setup!

My print statement isn't working? What's going on?

This CLI is written using Click, and in Click you have to think a little bit differently about how prints() work because the app is running in stdout. You'll have to use click.echo('Hello World!') instead print() to see your messages.