summary refs log tree commit diff
path: root/Completion/Debian/Command
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Debian/Command')
-rw-r--r--Completion/Debian/Command/.distfiles1
-rw-r--r--Completion/Debian/Command/_update-rc.d28
2 files changed, 29 insertions, 0 deletions
diff --git a/Completion/Debian/Command/.distfiles b/Completion/Debian/Command/.distfiles
index bed75015a..5a4a6ce87 100644
--- a/Completion/Debian/Command/.distfiles
+++ b/Completion/Debian/Command/.distfiles
@@ -5,4 +5,5 @@ _bts	_bug
 _debchange _dpkg       _dpkg_source  _dput  _dupload
 _update-alternatives   _make-kpkg    _debfoster
 _auto-apt _debsign
+_update-rc.d
 '
diff --git a/Completion/Debian/Command/_update-rc.d b/Completion/Debian/Command/_update-rc.d
new file mode 100644
index 000000000..68b81dc72
--- /dev/null
+++ b/Completion/Debian/Command/_update-rc.d
@@ -0,0 +1,28 @@
+#compdef update-rc.d
+
+local curcontext="$curcontext" state line expl
+
+_arguments -C \
+  '-n[show actions without performing them]' \
+  '-f[force removal of symlinks]' \
+  '1:service:_services' \
+  '2:command:(remove defaults start stop)' \
+  '*::args:->args' && return
+
+case $words[2] in
+  defaults)
+    _message -e number 'sequence number'
+  ;;
+  remove)
+    _message 'no more arguments'
+  ;;
+  st*)
+    case ${words[CURRENT-1]} in
+      .) _wanted commands expl commands compadd start stop && return ;;
+      start|stop) _message -e number 'sequence number' ;;
+      *) _message -e runlevels run\ level ;;
+    esac
+  ;;
+esac
+
+return 1