Cly allows you to create feature rich aliases in YAML. The example below is an example YAML showcasing 5 aliases with different configuration options. You can add this file in ~/.cly.yaml
or somewhere custom by setting the env CLYPATH
.
update:
command: /some/path/script.sh $@ # adds args to alias. E.g.: cly run update <x> <y>
subcommands:
- name: ping # subcommand for alias, called with: cly run update <ping>
command: /some/path/script.sh
dashboard:
command: streamlit run main.py
dir: /path/to/python/ # sets a directory to run an alias in
python: # Insert args based on index. E.g.: cly run test <python3.12>
command: $0 test.py # Runs <python3.12> main.py
create-file:
concurrent: true # Runs the commands below concurrently
commands:
- touch $0
- echo hi > $0
hi:
command: python3 test/env.py
envs:
- name: AWS_REGION # adds environment variables
value: us-east-1
- name: CITY
value: Rotterdam
Cly has two commands: run <<command>>
and ls
. You can install cly using: go install github.com/TimoKats/cly@latest
. The table shows an overview of the fields that can be supplied in your YAML alias objects to configure cly.
Field | Description |
---|---|
command/commands | The alias command. Can be a list of commands or one command. |
name | Name of the alias. Mandatory for subcommands. Root commands derive the name from the YAML name (see above). |
dir | Directory to run the alias in. If empty, current working directory. |
envs | Add additional env variables for the alias. List of name/value pairs. |
concurrent | Boolean. If true (and multiple commands are supplied), then the commands are executed in concurrent threads. |
subcommands | List of command objects (i.e. all other fields apply) that become subcommands. E.g. cly run *command* *subcommand* |
Finally, you can pass parameters to your aliases when invoking them. For this, we use bash syntax. Adding $@
adds all parameters to an alias. $0...n
inserts an alias based on the index. The example above has some examples for this.