Centoria - function manager for macOS and Linux.
initialize or reload centoria:
```bash
$ source $(cet init)
$ source (cet init | psub) ```
Add a function that work as alias:
bash
$ cet add search rg
Remove a function:
bash
$ cet remove search
You can use conditional statement:
```bash
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..?}
```bash
$ cet add search "rg {0..}" --condition "which rg"
$ cet add show-err-logs "tail -f /var/log/{0}/error.log" ```
Centoria also supports functions as sub-command:
```bash
docker c
expands as docker container
$ cet add c container --program docker
$ cet add prune "{0} prune" --program docker
$ cet remove prune --program docker ```
Execute the function:
```bash
cet init
)$ search "Hello" ./README.md
$ cet exec search -- "Hello" ./README.md
cet init
)$ docker c
$ cet exec docker -- c ```
If you want to use centoria as collection of subcommands:
```bash
$ cet add centoria "CENTORIACONFIGPATH=/path/to/config.toml cet exec {0} -- {1..?}" --shell bash
$ vim /path/to/config.toml
$ 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
:
```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' ```