Icktool is a command line program that uses the ick controller API to manage projects and pipelines and querying status.


Currently, you are best off running icktool from the ick2.git source code repository:

git clone git://git.liw.fi/ick2
cd ick2
./icktool --help


Create the file ~/.config/icktool/icktool.yaml with the following content:

    controller: https://ick2
    token-private-key-cmd: pass show ick2/token_key
    verify-tls: no

Change the controller line to be the URL to your controller.

Change the token-private-key-cmd to something that outputs the private part of the token signing key.

Change verify-tls to yes if you have a CA-signed TLS certificate. (The default setup uses self-signed ones.)


To see all projects and pipelines use the status command:

$ ./icktool status
             project |           pipeline | status | build_status |       log
-------------------- | ------------------ | ------ | ------------ | ---------

There should be no projects initially. To create some, create a file ick.yaml with the following content:


  - project: say_hello
      target: world
      - greet


  - pipeline: greet
      - target
      - shell: |
          t="$(params | jq -r .target)"
          echo "hello, $t"
        where: host

jq is a handy command line tool for doing things with data in JSON form. Here it is used to extract the value of a parameter. params is a shell function provided by ick that outputs all parameters as JSON.

Tell the controller about the new project:

./icktool make-it-so < ick.yaml

Trigger a build:

./icktool trigger say_hello greet

Check status (repeatedly until the build finishes):

watch ./icktool status

Check the build log (you can run this while the build happens, as well):

./icktool show-latest-log say_hello

Get help on command line use:

./icktool --help
./icktool help
./icktool help make-it-so