[systemd-devel] [PATCH 08/16] shell-comp: Split out zsh _timedatectl

William Giokas 1007380 at gmail.com
Tue Jul 30 21:22:46 PDT 2013


---
 Makefile.am                       |  3 ++
 shell-completion/zsh/_systemd     | 67 +-----------------------------------
 shell-completion/zsh/_timedatectl | 71 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 75 insertions(+), 66 deletions(-)
 create mode 100644 shell-completion/zsh/_timedatectl

diff --git a/Makefile.am b/Makefile.am
index cf764cd..cdf5c46 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3518,6 +3518,9 @@ bin_PROGRAMS += \
 
 dist_bashcompletion_DATA += \
 	shell-completion/bash/timedatectl
+
+dist_zshcompletion_DATA += \
+	shell-completion/zsh/_timedatectl
 endif
 
 polkitpolicy_in_files += \
diff --git a/shell-completion/zsh/_systemd b/shell-completion/zsh/_systemd
index 1d0f840..7e23d78 100644
--- a/shell-completion/zsh/_systemd
+++ b/shell-completion/zsh/_systemd
@@ -1,19 +1,9 @@
-#compdef timedatectl udevadm systemd-analyze systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-delta systemd-detect-virt systemd-inhibit systemd-machine-id-setup systemd-notify systemd-nspawn systemd-tmpfiles systemd-tty-ask-password-agent machinectl
+#compdef udevadm systemd-analyze systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-delta systemd-detect-virt systemd-inhibit systemd-machine-id-setup systemd-notify systemd-nspawn systemd-tmpfiles systemd-tty-ask-password-agent machinectl
 
 _ctls()
 {
     local curcontext="$curcontext" state lstate line
     case "$service" in
-        timedatectl)
-            _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' \
-                '*::timedatectl commands:_timedatectl_command'
-        ;;
         udevadm)
             _arguments \
                 '--debug[Print debug messages to stderr]' \
@@ -225,61 +215,6 @@ _outputmodes() {
     _describe -t output 'output mode' _output_opts || compadd "$@"
 }
 
-_timedatectl_set-timezone(){
-    local -a _timezones
-    _timezones=( ${(f)"$(_call_program timezones "${service}" list-timezones)"} )
-    compadd "$_timezones[@]"
-}
-
-_timedatectl_set-time(){
-    _message "YYYY-MM-DD HH:MM:SS"
-}
-
-_timedatectl_set-local-rtc(){
-    local -a _options
-    _options=(
-        '0:Maintain RTC in universal time'
-        '1:Maintain RTC in local time'
-    )
-    _describe options _options
-}
-
-_timedatectl_set-ntp(){
-    local -a _options
-    _options=(
-        '0:Disable NTP based network time configuration'
-        '1:Enable NTP based network time configuration'
-    )
-    _describe options _options
-}
-
-_timedatectl_command(){
-    local -a _timedatectl_cmds
-    _timedatectl_cmds=(
-        'status:Show current time settings'
-        'set-time:Set system time'
-        'set-timezone:Set system timezone'
-        'list-timezones:Show known timezones'
-        'set-local-rtc:Control whether RTC is in local time'
-        'set-ntp:Control whether NTP is enabled'
-    )
-    if (( CURRENT == 1 )); then
-        _describe -t commands 'timedatectl command' _timedatectl_cmds
-    else
-        local curcontext="$curcontext"
-        cmd="${${_timedatectl_cmds[(r)$words[1]:*]%%:*}}"
-        if (( $#cmd )); then
-            if (( $+functions[_timedatectl_$cmd] )); then
-                _timedatectl_$cmd
-            else
-                _message "no more options"
-            fi
-        else
-            _message "unknown timedatectl command: $words[1]"
-        fi
-    fi
-}
-
 (( $+functions[_machinectl_command] )) || _machinectl_command()
 {
   local -a _machinectl_cmds
diff --git a/shell-completion/zsh/_timedatectl b/shell-completion/zsh/_timedatectl
new file mode 100644
index 0000000..091b6f1
--- /dev/null
+++ b/shell-completion/zsh/_timedatectl
@@ -0,0 +1,71 @@
+#compdef timedatectl
+
+_timedatectl_set-timezone(){
+    local -a _timezones
+    _timezones=( ${(f)"$(_call_program timezones "${service}" list-timezones)"} )
+    compadd "$_timezones[@]"
+}
+
+_timedatectl_set-time(){
+    _message "YYYY-MM-DD HH:MM:SS"
+}
+
+_timedatectl_set-local-rtc(){
+    local -a _options
+    _options=(
+        '0:Maintain RTC in universal time'
+        '1:Maintain RTC in local time'
+    )
+    _describe options _options
+}
+
+_timedatectl_set-ntp(){
+    local -a _options
+    _options=(
+        '0:Disable NTP based network time configuration'
+        '1:Enable NTP based network time configuration'
+    )
+    _describe options _options
+}
+
+_timedatectl_command(){
+    local -a _timedatectl_cmds
+    _timedatectl_cmds=(
+        'status:Show current time settings'
+        'set-time:Set system time'
+        'set-timezone:Set system timezone'
+        'list-timezones:Show known timezones'
+        'set-local-rtc:Control whether RTC is in local time'
+        'set-ntp:Control whether NTP is enabled'
+    )
+    if (( CURRENT == 1 )); then
+        _describe -t commands 'timedatectl command' _timedatectl_cmds
+    else
+        local curcontext="$curcontext"
+        cmd="${${_timedatectl_cmds[(r)$words[1]:*]%%:*}}"
+        if (( $#cmd )); then
+            if (( $+functions[_timedatectl_$cmd] )); then
+                _timedatectl_$cmd
+            else
+                _message "no more options"
+            fi
+        else
+            _message "unknown timedatectl command: $words[1]"
+        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]' \
+    {-H,--host=}'[Operate on remote host]:userathost:_hosts_or_user_at_host' \
+    '*::timedatectl commands:_timedatectl_command'
-- 
1.8.4.rc0.352.g531e8cb



More information about the systemd-devel mailing list