github.com/jduhamel/gcli@v0.2.4-0.20151019142748-0d5307cd7e21/skeleton/resource/tmpl/bash/main.sh.tmpl (about) 1 #!/bin/bash 2 # 3 # {{ .Name }} 4 # 5 # Copyright (c) {{ date }} {{.Owner}} 6 # 7 8 readonly PROGNAME=$(basename $0) 9 readonly COMMAND=$1 10 11 usage() { 12 cat <<EOF 13 Name: 14 ${PROGNAME} 15 16 Usage: 17 ${PROGNAME} command [arguments...] 18 19 Commands: 20 {{range .Commands}}{{.Name}} {{ .Synopsis }} 21 {{end}}help show help 22 version print ${PROGNAME} version 23 24 EOF 25 } 26 27 version() { 28 echo "${PROGNAME} version {{ .Version }}" 29 } 30 31 log() { 32 echo "$(date "+%Y/%m/%m %H:%M:%S") $@" 33 } 34 35 debug() { 36 is_not_empty $DEBUG && log $@ 37 } 38 39 info() { 40 echo -e "\033[34m$@\033[m" # blue 41 } 42 43 warn() { 44 echo -e "\033[33m$@\033[m" # yellow 45 } 46 47 error() { 48 echo -e "\033[31m$@\033[m" # red 49 } 50 51 is_empty() { 52 local var=$1 53 54 [[ -z $var ]] 55 } 56 57 is_not_empty() { 58 local var=$1 59 60 [[ -n $var ]] 61 } 62 63 is_file() { 64 local file=$1 65 66 [[ -f $file ]] 67 } 68 69 is_dir() { 70 local dir=$1 71 72 [[ -d $dir ]] 73 } 74 75 {{range .Commands}} 76 {{ .Name }}() { 77 debug $FUNCNAME $@ 78 } 79 {{end}} 80 81 case "${COMMAND}" in 82 83 {{range .Commands}}{{ .Name }}) 84 {{.Name}} 85 ;; 86 {{end}} 87 version|v|-v|--version) 88 version 89 ;; 90 91 help|usage|h|-h|--help) 92 usage 93 ;; 94 95 *) 96 error "[Error] Invalid command '${COMMAND}'" 97 echo "Run '${PROGNAME} help' for usage." 98 exit 1 99 esac 100 101 exit 0