mirror of
https://github.com/systemd/systemd.git
synced 2024-11-05 15:21:37 +03:00
c1072f6473
Since there's no file extension, emacs and other editors do not know that this is supposed to be in shell syntax.
39 lines
1.4 KiB
Bash
39 lines
1.4 KiB
Bash
#compdef networkctl -*- shell-script -*-
|
|
# SPDX-License-Identifier: LGPL-2.1+
|
|
|
|
(( $+functions[_networkctl_commands] )) ||
|
|
_networkctl_commands() {
|
|
local -a _networkctl_cmds
|
|
_networkctl_cmds=(
|
|
'list:List existing links'
|
|
'status:Show information about the specified links'
|
|
'lldp:Show Link Layer Discovery Protocol status'
|
|
'label:Show address labels'
|
|
)
|
|
if (( CURRENT == 1 )); then
|
|
_describe -t commands 'networkctl command' _networkctl_cmds
|
|
else
|
|
local curcontext="$curcontext"
|
|
local -a _links
|
|
cmd="${${_networkctl_cmds[(r)$words[1]:*]%%:*}}"
|
|
if [ $cmd = "status" ]; then
|
|
_links=( "${(foa)$(networkctl list --no-legend | awk 'BEGIN{OFS=":"} {sub(/[[ \t]+/, ""); print $2,$0}' 2>/dev/null)}" )
|
|
if [[ -n "$_links" ]]; then
|
|
_describe -t links 'links' _links
|
|
else
|
|
_message "no links"
|
|
fi
|
|
else
|
|
_message "no more options"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
_arguments \
|
|
{-a,--all}'[Show all links with status]' \
|
|
'--no-pager[Do not pipe output into a pager]' \
|
|
'--no-legend[Do not print the column headers]' \
|
|
{-h,--help}'[Show this help]' \
|
|
'--version[Show package version]' \
|
|
'*::networkctl commands:_networkctl_commands'
|