Add pacman-conf zsh completions
Signed-off-by: Ronan Pigott <rpigott@berkeley.edu> Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
parent
04b69957c8
commit
d85d9c8c60
1 changed files with 95 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
||||||
#compdef pacman pacman.static=pacman pacman-key makepkg
|
#compdef pacman pacman.static=pacman pacman-conf pacman-key makepkg
|
||||||
|
|
||||||
# copy this file to /usr/share/zsh/site-functions/_pacman
|
# copy this file to /usr/share/zsh/site-functions/_pacman
|
||||||
|
|
||||||
|
@ -496,6 +496,97 @@ _pacman_zsh_comp() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_pacman_conf_general_directives=(
|
||||||
|
'RootDir'
|
||||||
|
'DBPath'
|
||||||
|
'CacheDir'
|
||||||
|
'HookDir'
|
||||||
|
'GPGDir'
|
||||||
|
'LogFile'
|
||||||
|
'HoldPkg'
|
||||||
|
'IgnorePkg'
|
||||||
|
'NoUpgrade'
|
||||||
|
'NoExtract'
|
||||||
|
'Architecture'
|
||||||
|
'XferCommand'
|
||||||
|
'UseSyslog'
|
||||||
|
'Color'
|
||||||
|
'TotalDownload'
|
||||||
|
'CheckSpace'
|
||||||
|
'VerbosePkgLists'
|
||||||
|
'DisableDownloadTimeout'
|
||||||
|
'NoProgressBar'
|
||||||
|
'ParallelDownloads'
|
||||||
|
'CleanMethod'
|
||||||
|
'SigLevel'
|
||||||
|
'LocalFileSigLevel'
|
||||||
|
'RemoteFileSigLevel'
|
||||||
|
)
|
||||||
|
|
||||||
|
_pacman_conf_repo_directives=(
|
||||||
|
'Server'
|
||||||
|
'SigLevel'
|
||||||
|
'Usage'
|
||||||
|
)
|
||||||
|
|
||||||
|
_pacman_conf_completions_repositories() {
|
||||||
|
local -a repositories
|
||||||
|
# If the user specified an alternate config, use those repos
|
||||||
|
repositories=($(pacman-conf ${(kv)opt_args[(I)-c|--config]} --repo-list ))
|
||||||
|
typeset -U repositories
|
||||||
|
compadd "$@" -a repositories
|
||||||
|
}
|
||||||
|
|
||||||
|
_pacman_conf_directive() {
|
||||||
|
# Directives use a case-insensitive matcher-list
|
||||||
|
local casematch="m:{[:lower:][:upper:]}={[:upper:][:lower:]}"
|
||||||
|
|
||||||
|
if [[ -n ${opt_args[(I)-r|--repo]} ]]; then
|
||||||
|
compadd -M "$casematch" "$@" -a _pacman_conf_repo_directives
|
||||||
|
else
|
||||||
|
if [[ $words[$CURRENT] == [iI][lL]* ]]; then
|
||||||
|
compadd -M "$casematch" "$@" ILoveCandy # Secret completion!
|
||||||
|
else
|
||||||
|
compadd -M "$casematch" "$@" -a _pacman_conf_general_directives
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_pacman_conf_commands=(
|
||||||
|
{-l,--repo-list}'[List configured repositories]:*: :->repo_list'
|
||||||
|
{-h,--help}'[Output systax and command line options]:*: :->complete'
|
||||||
|
{-V,--version}'[Display version and exit]:*: :->complete'
|
||||||
|
)
|
||||||
|
|
||||||
|
_pacman_conf_options=(
|
||||||
|
'(-r --repo)'{-r,--repo=}'[Query options for a specific repository]:package repo:_pacman_conf_completions_repositories'
|
||||||
|
'(-v --verbose)'{-v,--verbose}'[Always show directive names]'
|
||||||
|
)
|
||||||
|
|
||||||
|
_pacman_conf_options_common=(
|
||||||
|
'*'{-c,--config=}'[Specify an alternate configuration file]: :_files'
|
||||||
|
'*'{-R,--rootdir=}'[Specify an alternate insallation root]: :_files'
|
||||||
|
)
|
||||||
|
|
||||||
|
_pacman_conf() {
|
||||||
|
_arguments -s : \
|
||||||
|
"$_pacman_conf_commands[@]" \
|
||||||
|
"$_pacman_conf_options_common[@]" \
|
||||||
|
"$_pacman_conf_options[@]" \
|
||||||
|
'*:pacman directive:_pacman_conf_directive'
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
repo_list)
|
||||||
|
_arguments -s \
|
||||||
|
'(-l --repo-list)'{-l,--repo-list} \
|
||||||
|
"$_pacman_conf_options_common[@]"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
_message "no more arguments"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
_key_shortopts=(
|
_key_shortopts=(
|
||||||
'-h[show help]'
|
'-h[show help]'
|
||||||
'-a[Add the specified keys (empty for stdin)]: :_files'
|
'-a[Add the specified keys (empty for stdin)]: :_files'
|
||||||
|
@ -704,6 +795,9 @@ _pacman_comp() {
|
||||||
makepkg)
|
makepkg)
|
||||||
_makepkg "$@"
|
_makepkg "$@"
|
||||||
;;
|
;;
|
||||||
|
pacman-conf)
|
||||||
|
_pacman_conf "$@"
|
||||||
|
;;
|
||||||
pacman-key)
|
pacman-key)
|
||||||
_pacman_key "$@"
|
_pacman_key "$@"
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Add table
Reference in a new issue