Simple Makefile
template for situations when:
- You just need a simple way to document frequently used commands
- Don't want to create multiple
.sh
files just to document one-off CLI commands - Want to easily share commands with your colleagues
curl https://raw.githubusercontent.com/awinecki/magicfile/main/Makefile > Makefile
- Type
make
to display nice help and list available commands - Display command descriptions nicely
- Checks for validating env setup, env vars, params required for commands
- Template for commands
- Example how to use make commands with params (
make command param=value
) - Example how to use default params
Add regular make
commands. Some tips:
-
Splitting commands on multiple lines is problematic in makefiles, but can be done with
\
check-param: # [CHECK] Checks if param is present: make key=value @if [ "$(target)" = "" ]; then \ echo -e "${ERR}Missing param: target. Try: 'make cmd target=..'${NC}"; \ exit 1; \ fi vs. check-param: # [CHECK] Checks if param is present: make key=value @if [ "$(target)" = "" ]; then echo -e "${ERR}Missing param: target. Try: 'make cmd target=..'${NC}"; exit 1; fi
-
Add
@
in front of a command to prevent make from printing itecho "Hello World" vs. @echo "Hello World"
-
Add checks as make required targets
deploy: check-local-setup @deploy.. check-local-setup: @if test ... @if test ...
Hope you find this useful! 🙌
If you have any questions or improvement ideas, please contact me 🙃.