From 3e7f60ab32fc2a7d5244d10a0c4e1c3be838409d Mon Sep 17 00:00:00 2001 From: William Giokas <1007380@gmail.com> Date: Mon, 12 Aug 2013 12:41:18 -0500 Subject: [PATCH 1/1] zsh_completion: Move helper function to autoload _hosts_or_user_at_host was used by 6 different completions, and previously was in all 6 of those files. I moved it out to its own file, _sd_hosts_or_user_at_host. This will be autoloaded for use in other completion functions. It also allows external completions to use this function by simply calling _sd_hosts_or_user_at_host as in the systemd completions. --- Makefile.am | 1 + shell-completion/zsh/_hostnamectl | 8 +------- shell-completion/zsh/_localectl | 8 +------- shell-completion/zsh/_loginctl | 8 +------- shell-completion/zsh/_machinectl | 2 +- shell-completion/zsh/_sd_hosts_or_user_at_host | 5 +++++ shell-completion/zsh/_systemctl | 8 +------- shell-completion/zsh/_timedatectl | 8 +------- 8 files changed, 12 insertions(+), 36 deletions(-) create mode 100644 shell-completion/zsh/_sd_hosts_or_user_at_host diff --git a/Makefile.am b/Makefile.am index fa4fea95e..641e92fd7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -350,6 +350,7 @@ dist_zshcompletion_DATA = \ shell-completion/zsh/_kernel-install \ shell-completion/zsh/_systemd-nspawn \ shell-completion/zsh/_systemd-analyze \ + shell-completion/zsh/_sd_hosts_or_user_at_host \ shell-completion/zsh/_systemd dist_sysctl_DATA = \ diff --git a/shell-completion/zsh/_hostnamectl b/shell-completion/zsh/_hostnamectl index bc4441d56..9d01495ea 100644 --- a/shell-completion/zsh/_hostnamectl +++ b/shell-completion/zsh/_hostnamectl @@ -1,11 +1,5 @@ #compdef hostnamectl -_hosts_or_user_at_host() { - _alternative \ - 'users-hosts:: _user_at_host' \ - 'hosts:: _hosts' -} - _hostnamectl_command() { local -a _hostnamectl_cmds _hostnamectl_cmds=( @@ -34,5 +28,5 @@ _arguments -s \ '--static[Only set static hostname]' \ '--pretty[Only set pretty hostname]' \ '--no-ask-password[Do not prompt for password]' \ - {-H,--host=}'[Operate on remote host]:userathost:_hosts_or_user_at_host' \ + {-H,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ '*::hostnamectl commands:_hostnamectl_command' diff --git a/shell-completion/zsh/_localectl b/shell-completion/zsh/_localectl index 0beed4f5c..321e418b5 100644 --- a/shell-completion/zsh/_localectl +++ b/shell-completion/zsh/_localectl @@ -73,17 +73,11 @@ _localectl_command() { fi } -_hosts_or_user_at_host() { - _alternative \ - 'users-hosts:: _user_at_host' \ - 'hosts:: _hosts' -} - _arguments \ {-h,--help}'[Show this help]' \ '--version[Show package version]' \ "--no-convert[Don't convert keyboard mappings]" \ '--no-pager[Do not pipe output into a pager]' \ '--no-ask-password[Do not prompt for password]' \ - {-H,--host=}'[Operate on remote host]:userathost:_hosts_or_user_at_host' \ + {-H,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ '*::localectl commands:_localectl_command' diff --git a/shell-completion/zsh/_loginctl b/shell-completion/zsh/_loginctl index d121a2550..6d88685ed 100644 --- a/shell-completion/zsh/_loginctl +++ b/shell-completion/zsh/_loginctl @@ -1,11 +1,5 @@ #compdef loginctl -_hosts_or_user_at_host() { - _alternative \ - 'users-hosts:: _user_at_host' \ - 'hosts:: _hosts' -} - _loginctl_all_sessions(){_sys_all_sessions=($(loginctl list-sessions | { while read a b; do echo " $a"; done; }) )} _loginctl_all_users() {_sys_all_users=( $(loginctl list-users | { while read a b; do echo " $a"; done; }) )} _loginctl_all_seats() {_sys_all_seats=( $(loginctl list-seats | { while read a b; do echo " $a"; done; }) )} @@ -106,7 +100,7 @@ _arguments -s \ '--kill-who=[Who to send signal to]:killwho:(main control all)' \ {-s,--signal=}'[Which signal to send]:signal:_signals' \ '--no-ask-password[Do not ask for system passwords]' \ - {-H,--host=}'[Show information for remote host]:userathost:_hosts_or_user_at_host' \ + {-H,--host=}'[Show information for remote host]:userathost:_sd_hosts_or_user_at_host' \ {-P,--privileged}'[Acquire privileges before execution]' \ '--no-pager[Do not pipe output into a pager]' \ '*::loginctl command:_loginctl_command' diff --git a/shell-completion/zsh/_machinectl b/shell-completion/zsh/_machinectl index 89196a568..aa568e574 100644 --- a/shell-completion/zsh/_machinectl +++ b/shell-completion/zsh/_machinectl @@ -42,6 +42,6 @@ _arguments \ '--no-ask-password[Do not ask for system passwords]' \ '--kill-who=[Who to send signal to]:killwho:(leader all)' \ {-s,--signal=}'[Which signal to send]:signal:_signals' \ - {-H,--host=}'[Show information for remote host]:userathost:_hosts_or_user_at_host' \ + {-H,--host=}'[Show information for remote host]:userathost:_sd_hosts_or_user_at_host' \ {-P,--privileged}'[Acquire privileges before execution]' \ '*::machinectl command:_machinectl_command' diff --git a/shell-completion/zsh/_sd_hosts_or_user_at_host b/shell-completion/zsh/_sd_hosts_or_user_at_host new file mode 100644 index 000000000..282f7328e --- /dev/null +++ b/shell-completion/zsh/_sd_hosts_or_user_at_host @@ -0,0 +1,5 @@ +#autoload + +_alternative \ + 'users-hosts:: _user_at_host' \ + 'hosts:: _hosts' diff --git a/shell-completion/zsh/_systemctl b/shell-completion/zsh/_systemctl index f78dc19b7..dbe168a60 100644 --- a/shell-completion/zsh/_systemctl +++ b/shell-completion/zsh/_systemctl @@ -288,12 +288,6 @@ _systemctl_caching_policy() return 1 } -_hosts_or_user_at_host() { - _alternative \ - 'users-hosts:: _user_at_host' \ - 'hosts:: _hosts' -} - _outputmodes() { local -a _output_opts _output_opts=(short short-monotonic verbose export json json-pretty json-see cat) @@ -332,7 +326,7 @@ _arguments -s \ {-f,--force}'[When enabling unit files, override existing symlinks. When shutting down, execute action immediately]' \ '--root=[Enable unit files in the specified root directory]:directory:_directories' \ '--runtime[Enable unit files only temporarily until next reboot]' \ - {-H,--host=}'[Show information for remote host]:userathost:_hosts_or_user_at_host' \ + {-H,--host=}'[Show information for remote host]:userathost:_sd_hosts_or_user_at_host' \ {-P,--privileged}'[Acquire privileges before execution]' \ {-n,--lines=}'[Journal entries to show]:number of entries' \ {-o,--output=}'[Change journal output mode]:modes:_outputmodes' \ diff --git a/shell-completion/zsh/_timedatectl b/shell-completion/zsh/_timedatectl index 091b6f10c..9e24b8608 100644 --- a/shell-completion/zsh/_timedatectl +++ b/shell-completion/zsh/_timedatectl @@ -55,17 +55,11 @@ _timedatectl_command(){ fi } -_hosts_or_user_at_host() { - _alternative \ - 'users-hosts:: _user_at_host' \ - 'hosts:: _hosts' -} - _arguments -s \ {-h,--help}'[Show this help]' \ '--version[Show package version]' \ '--adjust-system-clock[Adjust system clock when changing local RTC mode]' \ '--no-pager[Do not pipe output into a pager]' \ '--no-ask-password[Do not prompt for password]' \ - {-H,--host=}'[Operate on remote host]:userathost:_hosts_or_user_at_host' \ + {-H,--host=}'[Operate on remote host]:userathost:_sd_hosts_or_user_at_host' \ '*::timedatectl commands:_timedatectl_command' -- 2.30.2