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