- Bash as a language
- Shared context
- Target is defined as a bash function
- Targets can depend on others
- Multiple targets can be invoked
- Autocompletion support
demo is outdated, acutal name is ``mk``, not ``makeit``
- Enable autocompletion
$ wget https://raw.githubusercontent.com/ilya-bystrov/mk/master/completions/mk_completions -O - >> ~/.bash_completion
$ wget https://raw.githubusercontent.com/ilya-bystrov/mk/master/completions/mk_alias -O - >> ~/.bash_completion
- Use template
$ wget https://raw.githubusercontent.com/ilya-bystrov/mk/master/mk
$ chmod u+x mk
$ mk <Tab>
bye hello
$ mk hello
Hello, World!
$ mk bye
bye-bye.
- Customize
mk
for your own needs
- The key idea is iterating through arguments that corresponds to function names and invoking this functions
- Use the template
- By default
/usr/bin/env bash
shebangerrexit
,pipefail
,nounset
bash options
- By default
- Or build your own
Requires docker
installed
$ cd mk/examples/docker-container-management/mk
$ mk build # build 'someimage' docker image based on 'busybox'
$ mk run # run 'someimage' image inside 'somecontainer' container
$ mk rm # remove 'somecontainer' container
$ mk rmi # remove 'someimage' image
Feel free to suggest improvements
Motivation is covered in my post