chiark / gitweb /
zsh_completion: Move helper function to autoload
authorWilliam Giokas <1007380@gmail.com>
Mon, 12 Aug 2013 17:41:18 +0000 (12:41 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 15 Aug 2013 02:42:56 +0000 (22:42 -0400)
_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
shell-completion/zsh/_hostnamectl
shell-completion/zsh/_localectl
shell-completion/zsh/_loginctl
shell-completion/zsh/_machinectl
shell-completion/zsh/_sd_hosts_or_user_at_host [new file with mode: 0644]
shell-completion/zsh/_systemctl
shell-completion/zsh/_timedatectl

index fa4fea95ee6bf5b8f640e7eba38ac7f304543e72..641e92fd794fc4eb6e1a51b97f8f67bfd42588e7 100644 (file)
@@ -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/_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 = \
        shell-completion/zsh/_systemd
 
 dist_sysctl_DATA = \
index bc4441d5603e02ecdc6552e3cad6586101bbf199..9d01495ea5c55da398cdbfaaddae66d03ee4ec6d 100644 (file)
@@ -1,11 +1,5 @@
 #compdef hostnamectl
 
 #compdef hostnamectl
 
-_hosts_or_user_at_host() {
-  _alternative \
-    'users-hosts:: _user_at_host' \
-    'hosts:: _hosts'
-}
-
 _hostnamectl_command() {
     local -a _hostnamectl_cmds
     _hostnamectl_cmds=(
 _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]' \
     '--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'
     '*::hostnamectl commands:_hostnamectl_command'
index 0beed4f5c4048b637ee0e21383035db3eac31985..321e418b5089841ee37fcd5db642b67417faac32 100644 (file)
@@ -73,17 +73,11 @@ _localectl_command() {
     fi
 }
 
     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]' \
 _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'
     '*::localectl commands:_localectl_command'
index d121a2550cda25e81ec76afbad317f6ce0e63a39..6d88685ed52f839016c1c78898c12c71d9e17ff1 100644 (file)
@@ -1,11 +1,5 @@
 #compdef loginctl
 
 #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; }) )}
 _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]' \
     '--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'
     {-P,--privileged}'[Acquire privileges before execution]' \
     '--no-pager[Do not pipe output into a pager]' \
     '*::loginctl command:_loginctl_command'
index 89196a568f5ae2f83d03ebe4c3ef91c2cf5dc54d..aa568e5746d87fb7e467f7c16f1f27c42b6227c7 100644 (file)
@@ -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' \
   '--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'
   {-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 (file)
index 0000000..282f732
--- /dev/null
@@ -0,0 +1,5 @@
+#autoload
+
+_alternative \
+  'users-hosts:: _user_at_host' \
+  'hosts:: _hosts'
index f78dc19b7e9d7e3e3d155ce4eec3c08e659d152f..dbe168a60969e456ce6739b5a242ccd2e7e06ab1 100644 (file)
@@ -288,12 +288,6 @@ _systemctl_caching_policy()
   return 1
 }
 
   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)
 _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]' \
     {-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' \
     {-P,--privileged}'[Acquire privileges before execution]' \
     {-n,--lines=}'[Journal entries to show]:number of entries' \
     {-o,--output=}'[Change journal output mode]:modes:_outputmodes' \
index 091b6f10ce26b6dfec083c91e4f165f7dd5daf8f..9e24b860801df073c76ab7c38acbca512cd208ba 100644 (file)
@@ -55,17 +55,11 @@ _timedatectl_command(){
     fi
 }
 
     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]' \
 _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'
     '*::timedatectl commands:_timedatectl_command'