diff options
author | Nishal Kulkarni <nishalkulkarni@gmail.com> | 2022-03-18 14:41:42 +0530 |
---|---|---|
committer | Luca Boccassi <luca.boccassi@gmail.com> | 2022-03-18 13:41:19 +0000 |
commit | de0988f9d2b23580d31e857991337927a5735fe1 (patch) | |
tree | 7467c16610fb7f15fdaab9b58bfd73ef89161a1f /shell-completion | |
parent | 7d469b63a10e749c10c406b8ceb7190eb921251b (diff) | |
download | systemd-de0988f9d2b23580d31e857991337927a5735fe1.tar.gz |
shell-completion: Add completion for oomctl
Added bash and zsh completions for oomctl arguments and commands.
Related To: #22118
Diffstat (limited to 'shell-completion')
-rw-r--r-- | shell-completion/bash/meson.build | 1 | ||||
-rw-r--r-- | shell-completion/bash/oomctl | 57 | ||||
-rw-r--r-- | shell-completion/zsh/_oomctl | 28 | ||||
-rw-r--r-- | shell-completion/zsh/meson.build | 1 |
4 files changed, 87 insertions, 0 deletions
diff --git a/shell-completion/bash/meson.build b/shell-completion/bash/meson.build index c6668e5ea3..963a11b6ce 100644 --- a/shell-completion/bash/meson.build +++ b/shell-completion/bash/meson.build @@ -40,6 +40,7 @@ items = [['busctl', ''], ['loginctl', 'ENABLE_LOGIND'], ['machinectl', 'ENABLE_MACHINED'], ['networkctl', 'ENABLE_NETWORKD'], + ['oomctl', 'ENABLE_OOMD'], ['portablectl', 'ENABLE_PORTABLED'], ['resolvectl', 'ENABLE_RESOLVE'], ['systemd-resolve', 'ENABLE_RESOLVE'], diff --git a/shell-completion/bash/oomctl b/shell-completion/bash/oomctl new file mode 100644 index 0000000000..cc778199c9 --- /dev/null +++ b/shell-completion/bash/oomctl @@ -0,0 +1,57 @@ +# oomctl(1) completion -*- shell-script -*- +# SPDX-License-Identifier: LGPL-2.1-or-later +# +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. +# +# systemd is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. + +__contains_word () { + local w word=$1; shift + for w in "$@"; do + [[ $w = "$word" ]] && return + done +} + +_oomctl() { + local i verb comps + local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} + local OPTS='-h --help --version --no-pager' + + if [[ "$cur" = -* ]]; then + COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") ) + return 0 + fi + + local -A VERBS=( + [STANDALONE]='help dump' + ) + + for ((i=0; i < COMP_CWORD; i++)); do + if __contains_word "${COMP_WORDS[i]}" ${VERBS[*]}; then + verb=${COMP_WORDS[i]} + break + fi + done + + if [[ -z ${verb-} ]]; then + comps=${VERBS[*]} + elif __contains_word "$verb" ${VERBS[STANDALONE]}; then + comps='' + fi + + COMPREPLY=( $(compgen -W '$comps' -- "$cur") ) + return 0 +} + +complete -F _oomctl oomctl diff --git a/shell-completion/zsh/_oomctl b/shell-completion/zsh/_oomctl new file mode 100644 index 0000000000..f956340b7e --- /dev/null +++ b/shell-completion/zsh/_oomctl @@ -0,0 +1,28 @@ +#compdef oomctl +# SPDX-License-Identifier: LGPL-2.1-or-later + +(( $+functions[_oomctl_commands] )) || _oomctl_commands() +{ + local -a _oomctl_cmds + _oomctl_cmds=( + "dump:Show the current state of the cgroup(s) and system context(s)" + "help:Prints a short help text and exits." + ) + if (( CURRENT == 1 )); then + _describe -t commands 'oomctl command' _oomctl_cmds + else + local curcontext="$curcontext" + cmd="${${_oomctl_cmds[(r)$words[1]:*]%%:*}}" + if (( $+functions[_oomctl_$cmd] )); then + _oomctl_$cmd + else + _message "no more options" + fi + fi +} + +_arguments \ + {-h,--help}'[Prints a short help text and exits.]' \ + '--version[Prints a short version string and exits.]' \ + '--no-pager[Do not pipe output into a pager]' \ + '*::oomctl command:_oomctl_commands' diff --git a/shell-completion/zsh/meson.build b/shell-completion/zsh/meson.build index a0615c4df9..6dca9dd595 100644 --- a/shell-completion/zsh/meson.build +++ b/shell-completion/zsh/meson.build @@ -34,6 +34,7 @@ items = [['_busctl', ''], ['_loginctl', 'ENABLE_LOGIND'], ['_machinectl', 'ENABLE_MACHINED'], ['_networkctl', 'ENABLE_NETWORKD'], + ['_oomctl', 'ENABLE_OOMD'], ['_systemd-inhibit', 'ENABLE_LOGIND'], ['_resolvectl', 'ENABLE_RESOLVE'], ['_systemd-tmpfiles', 'ENABLE_TMPFILES'], |