46 lines
		
	
	
		
			826 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			826 B
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/usr/bin/env bash
 | ||
| 
 | ||
| main() {
 | ||
|   if [[ $(type -t "⚡️$1") == "function" ]]; then
 | ||
|     ⚡️$1
 | ||
|   else
 | ||
|     ⚡️help
 | ||
|   fi
 | ||
| }
 | ||
| 
 | ||
| ⚡️help() {
 | ||
|   _help-line "Show this list" "$@"
 | ||
|   echo Usage: "$0" SUBCOMMAND
 | ||
|   echo
 | ||
|   echo "Available subcommands:"
 | ||
|   for subcommand in $(_subcommands); do
 | ||
|     if [[ $(type ⚡️$subcommand) =~ _help-line ]]; then
 | ||
|       printf "\t%-20s - %s\n" "$subcommand" "$(⚡️$subcommand help-line)"
 | ||
|     else
 | ||
|       printf "\t%-20s\n" $subcommand
 | ||
|     fi
 | ||
|   done
 | ||
| }
 | ||
| 
 | ||
| _subcommands() {
 | ||
|   compgen -c ⚡️ | cut -c3-
 | ||
| }
 | ||
| 
 | ||
| _help-line() {
 | ||
|   if [[ "$#" == 2 && "$2" == "help-line" ]]; then
 | ||
|     echo "$1" && exit 0
 | ||
|   fi
 | ||
| }
 | ||
| 
 | ||
| _good-message() {
 | ||
|   echo -e "\e[32m$@\e[0m"
 | ||
| }
 | ||
| 
 | ||
| _bad-message() {
 | ||
|   echo -e "\e[31m$@\e[0m"
 | ||
| }
 | ||
| 
 | ||
| [[ $(type -t _verify-prerequisites) == "function" ]] && ! _verify-prerequisites && exit 1
 | ||
| 
 | ||
| main "$@"
 |