API-CLI

 view release on metacpan or  search on metacpan

share/completion/bash/apicli.bash  view on Meta::CPAN

            2)
                __comp_current_options || return
                __apicli_dynamic_comp 'commands' 'generate'$'\t''Generate self completion'

            ;;
            *)
            # subcmds
            case ${MYWORDS[2]} in
              generate)
                FLAGS+=('--zsh' 'for zsh' '--bash' 'for bash')
                OPTIONS+=('--name' 'name of the program (optional, override name in spec)')
                __apicli_handle_options_flags
                  case $INDEX in
                  *)
                    __comp_current_options true || return # after parameters
                    case ${MYWORDS[$INDEX-1]} in
                      --name)
                      ;;

                    esac
                    ;;
                esac
              ;;
            esac

            ;;
            esac
          ;;
          pod)
            FLAGS+=()
            OPTIONS+=()
            __apicli_handle_options_flags
            case $INDEX in

            2)
                __comp_current_options || return
                __apicli_dynamic_comp 'commands' 'generate'$'\t''Generate self pod'

            ;;
            *)
            # subcmds
            case ${MYWORDS[2]} in
              generate)
                FLAGS+=()
                OPTIONS+=()
                __apicli_handle_options_flags
                __comp_current_options true || return # no subcmds, no params/opts
              ;;
            esac

            ;;
            esac
          ;;
        esac

        ;;
        esac
      ;;
      appspec)
        FLAGS+=()
        OPTIONS+=('--from' 'Currently only '"'"'openapi'"'"' is supported' '--out' 'Output file (default stdout)' '--name' 'appname' '--class' 'Class name (default API::CLI)')
        __apicli_handle_options_flags
          case $INDEX in
          1)
              __comp_current_options || return
          ;;
          *)
            __comp_current_options true || return # after parameters
            case ${MYWORDS[$INDEX-1]} in
              --from)
              ;;
              --out)
              ;;
              --name)
              ;;
              --class)
              ;;

            esac
            ;;
        esac
      ;;
      help)
        FLAGS+=('--all' '')
        OPTIONS+=()
        __apicli_handle_options_flags
        case $INDEX in

        1)
            __comp_current_options || return
            __apicli_dynamic_comp 'commands' 'appspec'

        ;;
        *)
        # subcmds
        case ${MYWORDS[1]} in
          _meta)
            FLAGS+=()
            OPTIONS+=()
            __apicli_handle_options_flags
            case $INDEX in

            2)
                __comp_current_options || return
                __apicli_dynamic_comp 'commands' 'completion'$'\n''pod'

            ;;
            *)
            # subcmds
            case ${MYWORDS[2]} in
              completion)
                FLAGS+=()
                OPTIONS+=()
                __apicli_handle_options_flags
                case $INDEX in

                3)
                    __comp_current_options || return
                    __apicli_dynamic_comp 'commands' 'generate'

                ;;

share/completion/bash/apicli.bash  view on Meta::CPAN

function __apicli_handle_flags() {
    local i j
    declare -a copy
    local last="${MYWORDS[$INDEX]}"
    local max=`expr ${#MYWORDS[@]} - 1`
    for ((i=0; i<$max; i++))
    do
        local word="${MYWORDS[$i]}"
        local found=
        for ((j=0; j<${#FLAGS[@]}; j+=2))
        do
            local flag="${FLAGS[$j]}"
            if [[ "$word" == "$flag" ]]; then
                found=1
                break
            fi
        done
        if [[ -n $found ]]; then
            INDEX=`expr $INDEX - 1`
        else
            copy+=("$word")
        fi
    done
    MYWORDS=("${copy[@]}" "$last")
}

__apicli_handle_options_flags() {
    __apicli_handle_options
    __apicli_handle_flags
}

__comp_current_options() {
    local always="$1"
    if [[ -n $always || ${MYWORDS[$INDEX]} =~ ^- ]]; then

      local options_spec=''
      local j=

      for ((j=0; j<${#FLAGS[@]}; j+=2))
      do
          local name="${FLAGS[$j]}"
          local desc="${FLAGS[$j+1]}"
          options_spec+="$name"$'\t'"$desc"$'\n'
      done

      for ((j=0; j<${#OPTIONS[@]}; j+=2))
      do
          local name="${OPTIONS[$j]}"
          local desc="${OPTIONS[$j+1]}"
          options_spec+="$name"$'\t'"$desc"$'\n'
      done
      __apicli_dynamic_comp 'options' "$options_spec"

      return 1
    else
      return 0
    fi
}


complete -o default -F _apicli apicli



( run in 0.985 second using v1.01-cache-2.11-cpan-56fb94df46f )