Fioctl CLI Installation

Fioctl is a simple tool that interacts with the Foundries.io REST API for managing a Factory. It is based on the ota-lite API, also built by Foundries.io.

Fioctl, is used to manage:

Installation

Manual Installation

We use Github Releases to distribute static X86_64 golang binaries.

  1. Download a Linux binary from the Github Releases page to a directory on your PATH, make sure you have Curl installed

    For example, to download version v0.14.1 on Linux, do:

    sudo curl -o /usr/local/bin/fioctl -LO https://github.com/foundriesio/fioctl/releases/download/v0.14.1/fioctl-linux-amd64
    
  2. Make the Fioctl binary executable:

    sudo chmod +x /usr/local/bin/fioctl
    

You can execute this again in future to overwrite your binary, therefore updating or changing your version.

  1. Download a Darwin binary from the Github Releases page to a directory on your PATH, make sure you have Curl installed

    For example, to download version v0.14.1 on macOS, do:

    curl -o /usr/local/bin/fioctl -LO https://github.com/foundriesio/fioctl/releases/download/v0.14.1/fioctl-darwin-amd64
    
  2. Make the Fioctl binary executable:

    chmod +x /usr/local/bin/fioctl
    

You can execute this again in future to overwrite your binary, therefore updating or changing your version.

  1. Download a Windows binary from the Github Releases page.

  2. Put it in a folder of your choosing and rename it to fioctl.exe

  3. Press Win + R and type SystemPropertiesAdvanced

  4. Press enter or click OK.

  5. Click “Environment Variables…” in the resultant menu..

  6. Click the Path system variable, then click Edit...

  7. Click New in the “Edit environment variable” menu.

  8. Enter the path to the folder in which you have placed Fioctl.

    An example path string if installing to a folder on the desktop would look like this.

    C:\Users\Gavin\Desktop\fio\bin

You should now be able to open cmd.exe or powershell.exe and type fioctl.

Install From Source

Note

This requires that you have Golang installed. See https://golang.org/doc/install for instructions.

If you intend to use Fioctl on a non X86_64 platform (like a Raspberry Pi/Pinebook/Smartphone) such as ARM, RISC-V, PPC, etc. Fioctl can be compiled and installed from the latest sources and installed via Golang’s own package manager; go get:

go get github.com/foundriesio/fioctl

Post-Install

Now that Fioctl is installed, you must authenticate with our backend before you’re able to use it. This requires you to generate OAuth2 application credentials for interacting with Factory APIs:

fioctl login

Fioctl will now ask for your application credentials and walk you through the authentication process.

For this credential, check the Use for tools like fioctl box. Remember that you can revoke this access and set up a new credential later once you are familiar with the API Access.

Note

Tokens can be generated at https://app.foundries.io/settings/tokens

Tip

We recommend creating a new API token for each device you plan to use our tools with. For example, if you intend to develop on multiple systems such as a laptop and a desktop, you should create a new token for each, just as you would with SSH keys. This way you can revoke tokens for individual systems, should they be compromised.

Configuration

When working with multiple factories, specifying a factory name is mandatory. It can be set using 3 different methods:

  • –factory/-f argument

    fioctl targets list --factory <factory>
    
  • environment variable FIOCTL_FACTORY

export FIOCTL_FACTORY=<factory>
fioctl targets list
  • config file’s factory option
echo "factory: <factory>" >> $HOME/.config/fioctl.yaml
fioctl targets list

Note

Refer to the Fioctl section of the documentation to learn more about configuration.