curl -sSf https://yake.amsdard.io/install.sh | sudo -E bash
perl > 5.0
perl-core > 5.0 (only for RHEL Linux)
cpan > 1.0 (build-essential package)
--debug level, DOCS internal vars explanation
--debug, --version, --upgrade and --help), new special task name _tasks, ZSH completion, able to use spaces in argument value
FORCE_ALL param, docs fixes
yake loads local YAML Yakefile to get tasks and configs
$CMD variable
$ARGS variable
$BIN variable
_config to display user defined variables and _tasks to display Yakefile tasks
$BIN - use instead of static yake command (while running recursive commands). $BIN var will use yake command with all custom defined variables. See --debug example.
$ARGS - contains all user defined variables. See YELLOW on Usage.
$CMD - contains full command (string located on the task`s right side). See GREEN on Usage.
$FORCE_ALL (0 | 1) - force all sub-tasks to be executed no matter on output code. By default if task`s return code is not 0 (error), whole task is stopped
$YAKEFILE - Yakefile file name
hello_world: echo "hello world"
run: echo "running..." && $CMD
demo:
- echo "dumping demo vars"
- echo "VAR1 = $VAR1"
- echo "VAR3 = $VAR3"
- $BIN run $CMD
_config:
VAR1: value1
VAR2: var2 using $VAR1
VAR3: var using VAR1="$VAR1" and VAR2=$VAR2
yake hello_world
hello world
yake run uname -i
running...
x86_64
yake --debug VAR=new1 run uname -i
ARGS VAR=new1
BIN /usr/local/bin/yake VAR=new1 BIN="/usr/local/bin/yake"
CMD uname -i
FORCE_ALL 0
VAR new1
VAR1 one
VAR11 eleven
VAR2 two one
VAR3 tree VAR1="one" and VAR2=two new11
YAKEFILE Yakefile
echo "running..." && uname -i
yake VAR1=new1 demo uname -i
dumping demo vars
VAR1 = new1
VAR3 = var using VAR1=value1 and VAR2=var2 using value1
running...
x86_64
yake VAR1="'new value'" VAR3=$(uname -m) _config
VAR3 x86_64
VAR1 new value
VAR11 eleven
VAR2 two new value
VAR3 tree VAR1="new value" and VAR2=two new value
YAKEFILE Yakefile$HOME but
recommended way is to type ${HOME} to split internal settings
and ENVs
yake V="'1 2 3'" task or yake V='"1 2 3"' task. You just have to use double quoting (' in " or reverse). You can use Yakefile _config section as well also.
yake YAKEFILE=/path/yakeefile.yml demo FORCE_ALL=1 param.
$BIN what enable You to keep all defined command configs.