summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Kiddle <okiddle@yahoo.co.uk>2018-03-30 16:23:59 +0200
committerOliver Kiddle <okiddle@yahoo.co.uk>2018-03-30 16:23:59 +0200
commit486297520fdcc0b8dd61fabb89f483d75d5c8d2a (patch)
tree09de06ae439c69e27952945dc39d283967799691
parent286b4c8b0cd855bc938d5ae8252d5273f37d9630 (diff)
downloadzsh-486297520fdcc0b8dd61fabb89f483d75d5c8d2a.tar.gz
zsh-486297520fdcc0b8dd61fabb89f483d75d5c8d2a.zip
42568: new shutdown completion
-rw-r--r--ChangeLog2
-rw-r--r--Completion/Unix/Command/_shutdown61
2 files changed, 63 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 9e287b5c4..500b6a644 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
2018-03-30 Oliver Kiddle <okiddle@yahoo.co.uk>
+ * 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