[systemd-devel] [PATCH] zsh-completion: Move machine listing to autoload
Ronny Chevalier
chevalier.ronny at gmail.com
Thu Nov 7 09:15:53 PST 2013
You can do the same with _outputmodes which is used in _systemctl and
_journalctl
2013/11/7 William Giokas <1007380 at gmail.com>:
> Instead of having two different listings of machines, use an autoloaded
> function that can be used by other shell completions in the future. It
> will also allow editing a single file to change the way machinectl and
> systemd-run completion for machines.
> ---
>
> An extension of the previous zsh completion patch from Ronny Chevalier.
>
> shell-completion/zsh/_machinectl | 7 +------
> shell-completion/zsh/_sd_machines | 13 +++++++++++++
> shell-completion/zsh/_systemd-run | 17 +----------------
> 3 files changed, 15 insertions(+), 22 deletions(-)
> create mode 100644 shell-completion/zsh/_sd_machines
>
> diff --git a/shell-completion/zsh/_machinectl b/shell-completion/zsh/_machinectl
> index 2e5e05c..026d74f 100644
> --- a/shell-completion/zsh/_machinectl
> +++ b/shell-completion/zsh/_machinectl
> @@ -19,12 +19,7 @@
> case $cmd in
> list) msg="no options" ;;
> *)
> - _machines=( "${(foa)$(machinectl list | awk '{print $1}')}" )
> - if [[ -n "$_machines" ]]; then
> - _describe 'machines' _machines
> - else
> - _message 'no machines'
> - fi
> + _sd_machines
> esac
> else
> _message "no more options"
> diff --git a/shell-completion/zsh/_sd_machines b/shell-completion/zsh/_sd_machines
> new file mode 100644
> index 0000000..1d64d13
> --- /dev/null
> +++ b/shell-completion/zsh/_sd_machines
> @@ -0,0 +1,13 @@
> +#autoload
> +__get_machines () {
> + machinectl --full --no-pager list | {while read -r a b; do echo $a; done;};
> +}
> +
> +local -a _machines
> +_machines=("${(fo)$(__get_machines)}")
> +typeset -U _machines
> +if [[ -n "$_machines" ]]; then
> + _describe 'machines' _machines
> +else
> + _message 'no machines'
> +fi
> diff --git a/shell-completion/zsh/_systemd-run b/shell-completion/zsh/_systemd-run
> index 4bfbd19..9bb7700 100644
> --- a/shell-completion/zsh/_systemd-run
> +++ b/shell-completion/zsh/_systemd-run
> @@ -18,27 +18,12 @@ __slices () {
> _describe 'slices' _slices
> }
>
> -__get_machines () {
> - machinectl --full --no-pager list | {while read -r a b; do echo $a; done;};
> -}
> -
> -__machines () {
> - local -a _machines
> - _machines=("${(fo)$(__get_machines)}")
> - typeset -U _machines
> - if [[ -n "$_machines" ]]; then
> - _describe 'machines' _machines
> - else
> - _message 'no machines'
> - fi
> -}
> -
> _arguments \
> {-h,--help}'[Show help message]' \
> '--version[Show package version]' \
> '--user[Run as user unit]' \
> {-H+,--host=}'[Operate on remote host]:[user@]host:_sd_hosts_or_user_at_host' \
> - {-M+,--machine=}'[Operate on local container]:machines:__machines' \
> + {-M+,--machine=}'[Operate on local container]:machines:_sd_machines' \
> '--scope[Run this as scope rather than service]' \
> '--unit=[Run under the specified unit name]:unit name' \
> '--description=[Description for unit]:description' \
> --
> 1.8.5.rc0
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
More information about the systemd-devel
mailing list