From 486297520fdcc0b8dd61fabb89f483d75d5c8d2a Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Fri, 30 Mar 2018 16:23:59 +0200 Subject: 42568: new shutdown completion --- ChangeLog | 2 ++ Completion/Unix/Command/_shutdown | 61 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 Completion/Unix/Command/_shutdown diff --git a/ChangeLog b/ChangeLog index 9e287b5c4..500b6a644 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2018-03-30 Oliver Kiddle + * 42568: Completion/Unix/Command/_shutdown: new completion + * 42569: Completion/Unix/Command/_lsof: improve completion after -i and -s options diff --git a/Completion/Unix/Command/_shutdown b/Completion/Unix/Command/_shutdown new file mode 100644 index 000000000..1ac6e61ba --- /dev/null +++ b/Completion/Unix/Command/_shutdown @@ -0,0 +1,61 @@ +#compdef shutdown + +local -a args + +if [[ -d /etc/systemd ]]; then + _arguments \ + '--help[display usage information]' \ + '(-H --halt)'{-H,--halt}'[halt the machine]' \ + '(-P --poweroff -h)'{-P,--poweroff,-h}'[power-off the machine (default)]' \ + '(-r --reboot)'{-r,--reboot}'[reboot the machine]' \ + "(--no-wall)-k[don't shutdown, just write wall message]" \ + "(-k)--no-wall[don't send a wall message]" \ + '-c[cancel pending shutdown]' \ + '1: :_guard "^-*" "time (now/hh\:mm/+mins)"' \ + '*:warning message' + return +fi + +case $OSTYPE in + *bsd*|dragonfly*|linux*) + args=( + '-h[halt the system after shutdown]' + '-p[turn off power after shutdown]' + '-r[reboot the system]' + '-k[kick everybody off]' + '-n[prevent file system cache from being flushed]' + '1: :_guard "^-*" "time (now/hh\:mm/+mins)"' + '*:warning message' + ) + ;| + (net|open)bsd*) + args+=( + '-d[cause system to perform a dump]' + '-f[create /fastboot so that file systems will not be checked during the next boot]' + ) + ;| + freebsd*|dragonfly*) + args+=( + '-o[execute halt or reboot instead of sending a signal to init]' + ) + ;; + netbsd*) + args+=( + '-b[specify boot string to pass to reboot]:boot string' + '-v[enable verbose console messages]' + '-x[enable debug console messages]' + '-z[silence some console messages]' + '-D[prevent shutdown from detaching from the tty]' + ) + ;; + solaris2.<11->) args=( '(-i)-r[reboot]' ) ;& + solaris*) + args+=( + '(-r)-i+[specify init-state]:init state:((0\:stop 1\:administrative s\:single\ user 5 6\:reboot))' + '-y[pre-answer yes to confirmation question]' + '-g+[specify grace period]:grace period (seconds) [60]' + ) + ;; +esac + +_arguments $args -- cgit 1.4.1