mirror of
https://gitlab.com/xonotic/xonotic
synced 2025-01-20 21:20:55 +00:00
Add zsh autocompletion for the all script
This commit is contained in:
parent
12105b36a2
commit
3ab7544053
95
misc/tools/all/zsh_autocompletion/all/_all
Normal file
95
misc/tools/all/zsh_autocompletion/all/_all
Normal file
@ -0,0 +1,95 @@
|
||||
#compdef all
|
||||
|
||||
zstyle ":completion:*:descriptions" format "%B%d%b"
|
||||
|
||||
|
||||
local context state line ret=1
|
||||
typeset -A opt_args
|
||||
|
||||
|
||||
local -a _1st_arguments
|
||||
_1st_arguments=(
|
||||
'help:print the help message'
|
||||
{update,pull}':update all repos'
|
||||
'compile:compile the source code'
|
||||
'clean:clean all repos'
|
||||
'run:run the game'
|
||||
'update-maps:download the latest version of all official maps from the autobuild server'
|
||||
'compile-map:compile the specified maps'
|
||||
'serverbench:run the server benchmark'
|
||||
'fix_upstream_rebase:fix upstream rebase'
|
||||
'fix_config:fix .git/config'
|
||||
'keygen:generate ssh key for repo access'
|
||||
{checkout,switch}':checkout a specific branch'
|
||||
'branch:create a branch in a repo'
|
||||
{push,commit}':commit and push changes'
|
||||
{each,foreach}':run a command in each repo'
|
||||
'grep:run "git grep" in all repos'
|
||||
)
|
||||
|
||||
_arguments -C \
|
||||
'1: :->cmds' \
|
||||
'*:: :->args' && ret=0
|
||||
|
||||
|
||||
case $state in
|
||||
cmds)
|
||||
_describe -t actions 'commands' _1st_arguments
|
||||
ret=0
|
||||
;;
|
||||
|
||||
args)
|
||||
case $words[1] in
|
||||
run)
|
||||
# choose version and autocomplete cvars
|
||||
# possible TODO: check for OS and adapt to it
|
||||
_arguments \
|
||||
'1:Version:(sdl glx dedicated)' && ret=0
|
||||
;;
|
||||
|
||||
compile)
|
||||
_arguments \
|
||||
'1:Version:(sdl glx dedicated)' \
|
||||
"-0[don't use precompiled d0_blind_id]" \
|
||||
'-c[clean all before building]' \
|
||||
'-qc[clean QuakeC binaries]' \
|
||||
- '(release)' \
|
||||
'-r[build in release mode]' \
|
||||
- '(profile)' \
|
||||
'-p[build in profile mode]' && ret=0
|
||||
;;
|
||||
|
||||
compile-map)
|
||||
_files -W "(data/xonotic-maps.pk3dir/maps)" -g "*.map(:r)" && ret=0
|
||||
;;
|
||||
|
||||
clean)
|
||||
_arguments \
|
||||
- '(noreclone)' \
|
||||
'-f[force clean]' \
|
||||
'-u[go to upstream]' \
|
||||
'-U[go to upstream and fetch master]' \
|
||||
'-m[go to master]' \
|
||||
'-r[remove untracked files]' \
|
||||
'-D[kill branches]' \
|
||||
- '(reclone)' \
|
||||
'--reclone[set all the other flags (effectively a reclone)]' && ret=0
|
||||
;;
|
||||
|
||||
update|pull)
|
||||
_arguments \
|
||||
"-N[don't allow pull]" \
|
||||
'-l[find the best mirror in the specified location]' \
|
||||
- '(ssh)' \
|
||||
{-p,-s}'[set ssh as push protocol and find the best mirror]' \
|
||||
- '(git)' \
|
||||
'-g[set git as push protocol and find the best mirror]' \
|
||||
- '(http)' \
|
||||
'-h[set http as push protocol and find the best mirror]' && ret=0
|
||||
;;
|
||||
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
return ret
|
Loading…
Reference in New Issue
Block a user