Zbigniew Jędrzejewski-Szmek 43ff24
From ba838f7f9b3de1777f3528c0fe211f9bedbd2a8b Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 43ff24
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Zbigniew Jędrzejewski-Szmek 43ff24
Date: Fri, 11 Jul 2014 08:25:20 -0400
Zbigniew Jędrzejewski-Szmek 43ff24
Subject: [PATCH] shell-completion,man: beef up chassis completions and
Zbigniew Jędrzejewski-Szmek 43ff24
 description
Zbigniew Jędrzejewski-Szmek 43ff24
Zbigniew Jędrzejewski-Szmek 43ff24
Parameters to hostnamectl command are not optional and should not be marked
Zbigniew Jędrzejewski-Szmek 43ff24
as such in the man page.
Zbigniew Jędrzejewski-Szmek 43ff24
Zbigniew Jędrzejewski-Szmek 43ff24
(cherry picked from commit 1ed774956406941d4812a3fb4493d2915f130f12)
Zbigniew Jędrzejewski-Szmek 43ff24
---
Zbigniew Jędrzejewski-Szmek 43ff24
 man/hostnamectl.xml               | 73 +++++++++++++++++++++------------------
Zbigniew Jędrzejewski-Szmek 43ff24
 shell-completion/bash/hostnamectl |  3 ++
Zbigniew Jędrzejewski-Szmek 43ff24
 shell-completion/zsh/_hostnamectl | 32 +++++++++++++++--
Zbigniew Jędrzejewski-Szmek 43ff24
 shell-completion/zsh/_localectl   |  4 +--
Zbigniew Jędrzejewski-Szmek 43ff24
 4 files changed, 75 insertions(+), 37 deletions(-)
Zbigniew Jędrzejewski-Szmek 43ff24
Zbigniew Jędrzejewski-Szmek 43ff24
diff --git a/man/hostnamectl.xml b/man/hostnamectl.xml
Zbigniew Jędrzejewski-Szmek 43ff24
index 001bfced03..13e5bd57f2 100644
Zbigniew Jędrzejewski-Szmek 43ff24
--- a/man/hostnamectl.xml
Zbigniew Jędrzejewski-Szmek 43ff24
+++ b/man/hostnamectl.xml
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -141,13 +141,14 @@
Zbigniew Jędrzejewski-Szmek 43ff24
                         </varlistentry>
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
                         <varlistentry>
Zbigniew Jędrzejewski-Szmek 43ff24
-                                <term><command>set-hostname [NAME]</command></term>
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <term><command>set-hostname <replaceable>NAME</replaceable></command></term>
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <listitem><para>Set the system
Zbigniew Jędrzejewski-Szmek 43ff24
-                                hostname. By default, this will alter
Zbigniew Jędrzejewski-Szmek 43ff24
-                                the pretty, the static, and the
Zbigniew Jędrzejewski-Szmek 43ff24
-                                transient hostname alike; however, if
Zbigniew Jędrzejewski-Szmek 43ff24
-                                one or more of
Zbigniew Jędrzejewski-Szmek 43ff24
+                                hostname to
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <replaceable>NAME</replaceable>. By
Zbigniew Jędrzejewski-Szmek 43ff24
+                                default, this will alter the pretty,
Zbigniew Jędrzejewski-Szmek 43ff24
+                                the static, and the transient hostname
Zbigniew Jędrzejewski-Szmek 43ff24
+                                alike; however, if one or more of
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <option>--static</option>,
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <option>--transient</option>,
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <option>--pretty</option> are used,
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -168,55 +169,61 @@
Zbigniew Jędrzejewski-Szmek 43ff24
                                 the hostname string is not done if
Zbigniew Jędrzejewski-Szmek 43ff24
                                 only the transient and/or static host
Zbigniew Jędrzejewski-Szmek 43ff24
                                 names are set, and the pretty host
Zbigniew Jędrzejewski-Szmek 43ff24
-                                name is left untouched. Pass the empty
Zbigniew Jędrzejewski-Szmek 43ff24
-                                string <literal></literal> as the
Zbigniew Jędrzejewski-Szmek 43ff24
-                                hostname to reset the selected
Zbigniew Jędrzejewski-Szmek 43ff24
-                                hostnames to their default (usually
Zbigniew Jędrzejewski-Szmek 43ff24
+                                name is left untouched.</para>
Zbigniew Jędrzejewski-Szmek 43ff24
+
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <para>Pass the empty string
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <literal></literal> as the hostname to
Zbigniew Jędrzejewski-Szmek 43ff24
+                                reset the selected hostnames to their
Zbigniew Jędrzejewski-Szmek 43ff24
+                                default (usually
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <literal>localhost</literal>).</para></listitem>
Zbigniew Jędrzejewski-Szmek 43ff24
                         </varlistentry>
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
                         <varlistentry>
Zbigniew Jędrzejewski-Szmek 43ff24
-                                <term><command>set-icon-name [NAME]</command></term>
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <term><command>set-icon-name <replaceable>NAME</replaceable></command></term>
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <listitem><para>Set the system icon
Zbigniew Jędrzejewski-Szmek 43ff24
-                                name. The icon name is used by some
Zbigniew Jędrzejewski-Szmek 43ff24
-                                graphical applications to visualize
Zbigniew Jędrzejewski-Szmek 43ff24
-                                this host. The icon name should follow
Zbigniew Jędrzejewski-Szmek 43ff24
-                                the 
Zbigniew Jędrzejewski-Szmek 43ff24
+                                name to
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <replaceable>NAME</replaceable>. The
Zbigniew Jędrzejewski-Szmek 43ff24
+                                icon name is used by some graphical
Zbigniew Jędrzejewski-Szmek 43ff24
+                                applications to visualize this host.
Zbigniew Jędrzejewski-Szmek 43ff24
+                                The icon name should follow the 
Zbigniew Jędrzejewski-Szmek 43ff24
                                 url="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">Icon
Zbigniew Jędrzejewski-Szmek 43ff24
-                                Naming Specification</ulink>. Pass an
Zbigniew Jędrzejewski-Szmek 43ff24
-                                empty string to this operation to
Zbigniew Jędrzejewski-Szmek 43ff24
-                                reset the icon name to the default
Zbigniew Jędrzejewski-Szmek 43ff24
-                                value, which is determined from chassis
Zbigniew Jędrzejewski-Szmek 43ff24
-                                type (see below) and possibly other
Zbigniew Jędrzejewski-Szmek 43ff24
+                                Naming Specification</ulink>.</para>
Zbigniew Jędrzejewski-Szmek 43ff24
+
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <para>Pass an empty string to reset
Zbigniew Jędrzejewski-Szmek 43ff24
+                                the icon name to the default value,
Zbigniew Jędrzejewski-Szmek 43ff24
+                                which is determined from chassis type
Zbigniew Jędrzejewski-Szmek 43ff24
+                                (see below) and possibly other
Zbigniew Jędrzejewski-Szmek 43ff24
                                 parameters.</para></listitem>
Zbigniew Jędrzejewski-Szmek 43ff24
                         </varlistentry>
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
                         <varlistentry>
Zbigniew Jędrzejewski-Szmek 43ff24
-                                <term><command>set-chassis [TYPE]</command></term>
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <term><command>set-chassis <replaceable>TYPE</replaceable></command></term>
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
-                                <listitem><para>Set the chassis
Zbigniew Jędrzejewski-Szmek 43ff24
-                                type. The chassis type is used by some
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <listitem><para>Set the chassis type
Zbigniew Jędrzejewski-Szmek 43ff24
+                                to <replaceable>TYPE</replaceable>.
Zbigniew Jędrzejewski-Szmek 43ff24
+                                The chassis type is used by some
Zbigniew Jędrzejewski-Szmek 43ff24
                                 graphical applications to visualize
Zbigniew Jędrzejewski-Szmek 43ff24
-                                the host or alter user
Zbigniew Jędrzejewski-Szmek 43ff24
-                                interaction. Currently, the following
Zbigniew Jędrzejewski-Szmek 43ff24
-                                chassis types are defined:
Zbigniew Jędrzejewski-Szmek 43ff24
+                                the host or alter user interaction.
Zbigniew Jędrzejewski-Szmek 43ff24
+                                Currently, the following chassis types
Zbigniew Jędrzejewski-Szmek 43ff24
+                                are defined:
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <literal>desktop</literal>,
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <literal>laptop</literal>,
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <literal>server</literal>,
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <literal>tablet</literal>,
Zbigniew Jędrzejewski-Szmek 43ff24
-				<literal>handset</literal>,
Zbigniew Jędrzejewski-Szmek 43ff24
-				<literal>watch</literal>, as well as
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <literal>handset</literal>,
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <literal>watch</literal>, as well as
Zbigniew Jędrzejewski-Szmek 43ff24
                                 the special chassis types
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <literal>vm</literal> and
Zbigniew Jędrzejewski-Szmek 43ff24
                                 <literal>container</literal> for
Zbigniew Jędrzejewski-Szmek 43ff24
                                 virtualized systems that lack an
Zbigniew Jędrzejewski-Szmek 43ff24
-                                immediate physical chassis. Pass an
Zbigniew Jędrzejewski-Szmek 43ff24
-                                empty string to this operation to
Zbigniew Jędrzejewski-Szmek 43ff24
-                                reset the chassis type to the default
Zbigniew Jędrzejewski-Szmek 43ff24
-                                value which is determined from the
Zbigniew Jędrzejewski-Szmek 43ff24
-                                firmware and possibly other
Zbigniew Jędrzejewski-Szmek 43ff24
-                                parameters.</para></listitem>
Zbigniew Jędrzejewski-Szmek 43ff24
+                                immediate physical chassis.</para>
Zbigniew Jędrzejewski-Szmek 43ff24
+
Zbigniew Jędrzejewski-Szmek 43ff24
+                                <para>Pass an empty string to reset
Zbigniew Jędrzejewski-Szmek 43ff24
+                                the chassis type to the default value
Zbigniew Jędrzejewski-Szmek 43ff24
+                                which is determined from the firmware
Zbigniew Jędrzejewski-Szmek 43ff24
+                                and possibly other parameters.</para>
Zbigniew Jędrzejewski-Szmek 43ff24
+                                </listitem>
Zbigniew Jędrzejewski-Szmek 43ff24
                         </varlistentry>
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
                 </variablelist>
Zbigniew Jędrzejewski-Szmek 43ff24
diff --git a/shell-completion/bash/hostnamectl b/shell-completion/bash/hostnamectl
Zbigniew Jędrzejewski-Szmek 43ff24
index 9c75da9e7f..22f8f06b69 100644
Zbigniew Jędrzejewski-Szmek 43ff24
--- a/shell-completion/bash/hostnamectl
Zbigniew Jędrzejewski-Szmek 43ff24
+++ b/shell-completion/bash/hostnamectl
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -39,6 +39,7 @@ _hostnamectl() {
Zbigniew Jędrzejewski-Szmek 43ff24
                 [STANDALONE]='status'
Zbigniew Jędrzejewski-Szmek 43ff24
                      [ICONS]='set-icon-name'
Zbigniew Jędrzejewski-Szmek 43ff24
                       [NAME]='set-hostname'
Zbigniew Jędrzejewski-Szmek 43ff24
+                   [CHASSIS]='set-chassis'
Zbigniew Jędrzejewski-Szmek 43ff24
         )
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
         for ((i=0; i < COMP_CWORD; i++)); do
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -50,6 +51,8 @@ _hostnamectl() {
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
         if [[ -z $verb ]]; then
Zbigniew Jędrzejewski-Szmek 43ff24
                 comps=${VERBS[*]}
Zbigniew Jędrzejewski-Szmek 43ff24
+        elif __contains_word "$verb" ${VERBS[CHASSIS]}; then
Zbigniew Jędrzejewski-Szmek 43ff24
+                comps='desktop laptop server tablet handset watch vm container'
Zbigniew Jędrzejewski-Szmek 43ff24
         elif __contains_word "$verb" ${VERBS[STANDALONE]} ${VERBS[ICONS]} ${VERBS[NAME]}; then
Zbigniew Jędrzejewski-Szmek 43ff24
                 comps=''
Zbigniew Jędrzejewski-Szmek 43ff24
         fi
Zbigniew Jędrzejewski-Szmek 43ff24
diff --git a/shell-completion/zsh/_hostnamectl b/shell-completion/zsh/_hostnamectl
Zbigniew Jędrzejewski-Szmek 43ff24
index 7effa0489e..be8687609e 100644
Zbigniew Jędrzejewski-Szmek 43ff24
--- a/shell-completion/zsh/_hostnamectl
Zbigniew Jędrzejewski-Szmek 43ff24
+++ b/shell-completion/zsh/_hostnamectl
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -1,5 +1,30 @@
Zbigniew Jędrzejewski-Szmek 43ff24
 #compdef hostnamectl
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
+_hostnamectl_set-hostname() {
Zbigniew Jędrzejewski-Szmek 43ff24
+    if (( CURRENT <= 3 )); then
Zbigniew Jędrzejewski-Szmek 43ff24
+        _message "new hostname"
Zbigniew Jędrzejewski-Szmek 43ff24
+    else
Zbigniew Jędrzejewski-Szmek 43ff24
+        _message "no more options"
Zbigniew Jędrzejewski-Szmek 43ff24
+    fi
Zbigniew Jędrzejewski-Szmek 43ff24
+}
Zbigniew Jędrzejewski-Szmek 43ff24
+
Zbigniew Jędrzejewski-Szmek 43ff24
+_hostnamectl_set-icon-name() {
Zbigniew Jędrzejewski-Szmek 43ff24
+    if (( CURRENT <= 3 )); then
Zbigniew Jędrzejewski-Szmek 43ff24
+        _message "new icon name"
Zbigniew Jędrzejewski-Szmek 43ff24
+    else
Zbigniew Jędrzejewski-Szmek 43ff24
+        _message "no more options"
Zbigniew Jędrzejewski-Szmek 43ff24
+    fi
Zbigniew Jędrzejewski-Szmek 43ff24
+}
Zbigniew Jędrzejewski-Szmek 43ff24
+
Zbigniew Jędrzejewski-Szmek 43ff24
+_hostnamectl_set-chassis() {
Zbigniew Jędrzejewski-Szmek 43ff24
+    if (( CURRENT <= 3 )); then
Zbigniew Jędrzejewski-Szmek 43ff24
+        _chassis=( desktop laptop server tablet handset watch vm container )
Zbigniew Jędrzejewski-Szmek 43ff24
+        _describe chassis _chassis
Zbigniew Jędrzejewski-Szmek 43ff24
+    else
Zbigniew Jędrzejewski-Szmek 43ff24
+        _message "no more options"
Zbigniew Jędrzejewski-Szmek 43ff24
+    fi
Zbigniew Jędrzejewski-Szmek 43ff24
+}
Zbigniew Jędrzejewski-Szmek 43ff24
+
Zbigniew Jędrzejewski-Szmek 43ff24
 _hostnamectl_command() {
Zbigniew Jędrzejewski-Szmek 43ff24
     local -a _hostnamectl_cmds
Zbigniew Jędrzejewski-Szmek 43ff24
     _hostnamectl_cmds=(
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -14,8 +39,11 @@ _hostnamectl_command() {
Zbigniew Jędrzejewski-Szmek 43ff24
         local curcontext="$curcontext"
Zbigniew Jędrzejewski-Szmek 43ff24
         cmd="${${_hostnamectl_cmds[(r)$words[1]:*]%%:*}}"
Zbigniew Jędrzejewski-Szmek 43ff24
         if (( $#cmd )); then
Zbigniew Jędrzejewski-Szmek 43ff24
-            [[ $cmd == status ]] && msg="no options" || msg="options for $cmd"
Zbigniew Jędrzejewski-Szmek 43ff24
-            _message "$msg"
Zbigniew Jędrzejewski-Szmek 43ff24
+            if [[ $cmd == status ]]; then
Zbigniew Jędrzejewski-Szmek 43ff24
+                _message "no options"
Zbigniew Jędrzejewski-Szmek 43ff24
+            else
Zbigniew Jędrzejewski-Szmek 43ff24
+                _hostnamectl_$cmd
Zbigniew Jędrzejewski-Szmek 43ff24
+            fi
Zbigniew Jędrzejewski-Szmek 43ff24
         else
Zbigniew Jędrzejewski-Szmek 43ff24
             _message "unknown hostnamectl command: $words[1]"
Zbigniew Jędrzejewski-Szmek 43ff24
         fi
Zbigniew Jędrzejewski-Szmek 43ff24
diff --git a/shell-completion/zsh/_localectl b/shell-completion/zsh/_localectl
Zbigniew Jędrzejewski-Szmek 43ff24
index 87432da1dc..d8af4d1863 100644
Zbigniew Jędrzejewski-Szmek 43ff24
--- a/shell-completion/zsh/_localectl
Zbigniew Jędrzejewski-Szmek 43ff24
+++ b/shell-completion/zsh/_localectl
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -22,8 +22,8 @@ _localectl_set-locale() {
Zbigniew Jędrzejewski-Szmek 43ff24
 
Zbigniew Jędrzejewski-Szmek 43ff24
 _localectl_set-keymap() {
Zbigniew Jędrzejewski-Szmek 43ff24
     local -a _keymaps
Zbigniew Jędrzejewski-Szmek 43ff24
-    _keymaps=( ${(f)"$(_call_program locales "$service" list-keymaps)"} )
Zbigniew Jędrzejewski-Szmek 43ff24
     if (( CURRENT <= 3 )); then
Zbigniew Jędrzejewski-Szmek 43ff24
+        _keymaps=( ${(f)"$(_call_program locales "$service" list-keymaps)"} )
Zbigniew Jędrzejewski-Szmek 43ff24
         _describe keymaps _keymaps
Zbigniew Jędrzejewski-Szmek 43ff24
     else
Zbigniew Jędrzejewski-Szmek 43ff24
         _message "no more options"
Zbigniew Jędrzejewski-Szmek 43ff24
@@ -77,7 +77,7 @@ _localectl_command() {
Zbigniew Jędrzejewski-Szmek 43ff24
         if (( $+functions[_localectl_$cmd] )); then
Zbigniew Jędrzejewski-Szmek 43ff24
             _localectl_$cmd
Zbigniew Jędrzejewski-Szmek 43ff24
         else
Zbigniew Jędrzejewski-Szmek 43ff24
-            _message "no more options"
Zbigniew Jędrzejewski-Szmek 43ff24
+            _message "unknown localectl command: $words[1]"
Zbigniew Jędrzejewski-Szmek 43ff24
         fi
Zbigniew Jędrzejewski-Szmek 43ff24
     fi
Zbigniew Jędrzejewski-Szmek 43ff24
 }