Crates.io | centoria |
lib.rs | centoria |
version | 0.1.1 |
source | src |
created_at | 2019-10-14 09:22:45.125892 |
updated_at | 2019-10-27 22:31:17.522019 |
description | function manager for macOS and Linux |
homepage | |
repository | https://github.com/mika-f/centoria |
max_upload_size | |
id | 172387 |
size | 89,942 |
Centoria - function manager for macOS and Linux.
initialize or reload centoria:
# bash or zsh
$ source $(cet init)
# fish
$ source (cet init | psub)
Add a function that work as alias:
$ cet add search rg
Remove a function:
$ cet remove search
You can use conditional statement:
# if `which rg` returns success code (exit 0), you can use `search` command.
$ cet add search rg --condition "which rg"
If you want to pass the arguments anywhere, you can specify them using {INDEXER}
as placeholder.
Example:
{0}
for placeholder.{0..3}
for placeholder.{2..}
for placeholder.{2..?}
for placeholder.
?
acts as optional parameter
{0?}
{0..?}
# explicitly set the position of a parameter for search
$ cet add search "rg {0..}" --condition "which rg"
# "show-err-logs nginx" expands as "tail -f /var/log/nginx/error.log"
$ cet add show-err-logs "tail -f /var/log/{0}/error.log"
Centoria also supports functions as sub-command:
# `docker c` expands as `docker container`
$ cet add c container --program docker
# also use function (this function has no meaning, but an example)
$ cet add prune "{0} prune" --program docker
# remove
$ cet remove prune --program docker
Execute the function:
# direct (required `cet init`)
$ search "Hello" ./README.md
# via centoria
$ cet exec search -- "Hello" ./README.md
# subcommands (direct, required `cet init`)
$ docker c
# subcommands (via centoria)
$ cet exec docker -- c
If you want to use centoria as collection of subcommands:
# 1st, create a base command
$ cet add centoria "CENTORIA_CONFIG_PATH=/path/to/config.toml cet exec {0} -- {1..?}" --shell bash
# 2nd, write functions to /path/to/config.toml
$ vim /path/to/config.toml
# 3rd, execute via base command
$ centoria search "Hello" ./README.md
For more information about Centoria, please see the result of cet help
or cet help <COMMAND>
.
Centoria find configuration from the following paths:
$CENTORIA_CONFIG_PATH
$XDG_CONFIG_HOME/centoria/centoria.toml
or $HOME/.config/centoria/centoria.toml
$HOME/Library/Preferences/centoria/centoria.toml
$APPDATA/centoria/centoria.toml
$HOME/.centoria.toml
If you add a new function from command-line, Centoria creates a new file in $HOME/.centoria.toml
.
example centoria.toml
:
[search]
runas = 'alias'
command = 'rg'
condition = 'which rg'
[show-err-logs]
runas = 'function'
command = 'tail -f /var/log/{0}/error.log'
description = 'show error logs'
descriptions = [
'application name' # description of argument {0}
]
[docker]
runas = 'subcommand'
command = 'docker'
[docker.subcommands.c]
command = 'container'