|
@@ -0,0 +1,111 @@
|
|
|
+#compdef gb
|
|
|
+#autoload
|
|
|
+
|
|
|
+_gb () {
|
|
|
+ local ret=1 state
|
|
|
+ _arguments -C ':command:->command' '*::options:->options' && ret=0
|
|
|
+
|
|
|
+ case $state in
|
|
|
+ (command)
|
|
|
+ local -a subcommands
|
|
|
+ subcommands=(
|
|
|
+ "build:build a package"
|
|
|
+ "doc:show documentation for a package or symbol"
|
|
|
+ "env:print project environment variables"
|
|
|
+ "generate:generate Go files by processing source"
|
|
|
+ "help:displays the help"
|
|
|
+ "info:info returns information about this project"
|
|
|
+ "list:list the packages named by the importpaths"
|
|
|
+ "test:test packages"
|
|
|
+ "vendor:manage your vendored dependencies"
|
|
|
+ )
|
|
|
+ _describe -t subcommands 'gb subcommands' subcommands && ret=0
|
|
|
+ ;;
|
|
|
+ (options)
|
|
|
+ case $line[1] in
|
|
|
+ (build)
|
|
|
+ _arguments \
|
|
|
+ -f'[ignore cached packages]' \
|
|
|
+ -F'[do not cache packages]' \
|
|
|
+ -q'[decreases verbosity]' \
|
|
|
+ -P'[the number of build jobs to run in parallel]' \
|
|
|
+ -R'[sets the base of the project root search path]' \
|
|
|
+ -dotfile'[output a dot formatted file of the build steps]' \
|
|
|
+ -ldflags'["flag list" arguments to pass to the linker]' \
|
|
|
+ -gcflags'["arg list" arguments to pass to the compiler]' \
|
|
|
+ -race'[enable data race detection]' \
|
|
|
+ -tags'["tag list" additional build tags]'
|
|
|
+ ;;
|
|
|
+ (list)
|
|
|
+ _arguments \
|
|
|
+ -f'[alternate format for the list, using the syntax of package template]' \
|
|
|
+ -s'[read format template from STDIN]' \
|
|
|
+ -json'[prints output in structured JSON format]'
|
|
|
+ ;;
|
|
|
+ (test)
|
|
|
+ _arguments \
|
|
|
+ -v'[print output from test subprocess]' \
|
|
|
+ -ldflags'["flag list" arguments to pass to the linker]' \
|
|
|
+ -gcflags'["arg list" arguments to pass to the compiler]' \
|
|
|
+ -race'[enable data race detection]' \
|
|
|
+ -tags'["tag list" additional build tags]'
|
|
|
+ ;;
|
|
|
+ (vendor)
|
|
|
+ _gb-vendor
|
|
|
+ esac
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+
|
|
|
+ return ret
|
|
|
+}
|
|
|
+
|
|
|
+_gb-vendor () {
|
|
|
+ local curcontext="$curcontext" state line
|
|
|
+ _arguments -C ':command:->command' '*::options:->options'
|
|
|
+
|
|
|
+ case $state in
|
|
|
+ (command)
|
|
|
+ local -a subcommands
|
|
|
+ subcommands=(
|
|
|
+ 'delete:deletes a local dependency'
|
|
|
+ 'fetch:fetch a remote dependency'
|
|
|
+ 'list:lists dependencies, one per line'
|
|
|
+ 'purge:remove all unreferenced dependencies'
|
|
|
+ 'restore:restore dependencies from the manifest'
|
|
|
+ 'update:update a local dependency'
|
|
|
+ )
|
|
|
+ _describe -t subcommands 'gb vendor subcommands' subcommands && ret=0
|
|
|
+ ;;
|
|
|
+ (options)
|
|
|
+ case $line[1] in
|
|
|
+ (delete)
|
|
|
+ _arguments \
|
|
|
+ -all'[remove all dependencies]'
|
|
|
+ ;;
|
|
|
+ (fetch)
|
|
|
+ _arguments \
|
|
|
+ -branch'[fetch from a particular branch]' \
|
|
|
+ -no-recurse'[do not fetch recursively]' \
|
|
|
+ -tag'[fetch the specified tag]' \
|
|
|
+ -revision'[fetch the specific revision from the branch (if supplied)]' \
|
|
|
+ -precaire'[allow the use of insecure protocols]' \
|
|
|
+ ;;
|
|
|
+ (list)
|
|
|
+ _arguments \
|
|
|
+ -f'[controls the template used for printing each manifest entry]'
|
|
|
+ ;;
|
|
|
+ (restore)
|
|
|
+ _arguments \
|
|
|
+ -precaire'[allow the use of insecure protocols]'
|
|
|
+ ;;
|
|
|
+ (update)
|
|
|
+ _arguments \
|
|
|
+ -all'[update all dependencies in the manifest or supply a given dependency]' \
|
|
|
+ -precaire'[allow the use of insecure protocols]'
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+}
|
|
|
+
|
|
|
+_gb
|