Skip to content

awinecki/magicfile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Magicfile ✨

screenshot

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

Installation

curl https://raw.githubusercontent.com/awinecki/magicfile/main/Makefile > Makefile

Features

  1. Type make to display nice help and list available commands
  2. Display command descriptions nicely
  3. Checks for validating env setup, env vars, params required for commands
  4. Template for commands
  5. Example how to use make commands with params (make command param=value)
  6. Example how to use default params

Usage & Tips

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 it

    echo "Hello World"
    
    vs.
    
    @echo "Hello World"
    
  • Add checks as make required targets

    deploy: check-local-setup
      @deploy..
      
    check-local-setup:
    	@if test ...
    	@if test ...
    

Demo

asciicast

That's it!

Hope you find this useful! 🙌

If you have any questions or improvement ideas, please contact me 🙃.

About

Simple Makefile template for documenting frequent commands.

Topics

Resources

License

Stars

Watchers

Forks