summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Unix/Command/_shutdown61
1 files changed, 61 insertions, 0 deletions
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