summaryrefslogtreecommitdiff
path: root/shell-completion
diff options
context:
space:
mode:
authorNishal Kulkarni <nishalkulkarni@gmail.com>2022-03-18 14:41:42 +0530
committerLuca Boccassi <luca.boccassi@gmail.com>2022-03-18 13:41:19 +0000
commitde0988f9d2b23580d31e857991337927a5735fe1 (patch)
tree7467c16610fb7f15fdaab9b58bfd73ef89161a1f /shell-completion
parent7d469b63a10e749c10c406b8ceb7190eb921251b (diff)
downloadsystemd-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.build1
-rw-r--r--shell-completion/bash/oomctl57
-rw-r--r--shell-completion/zsh/_oomctl28
-rw-r--r--shell-completion/zsh/meson.build1
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'],