about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Debian/Command/_make-kpkg16
1 files changed, 14 insertions, 2 deletions
diff --git a/Completion/Debian/Command/_make-kpkg b/Completion/Debian/Command/_make-kpkg
index 3fd08638d..8d5eff037 100644
--- a/Completion/Debian/Command/_make-kpkg
+++ b/Completion/Debian/Command/_make-kpkg
@@ -1,10 +1,13 @@
 #compdef make-kpkg
 
+local context state line
+typeset -A opt_args
+
 _arguments \
    '--help[display help message]' \
    '--revision[change Debian revision number]:number:' \
    '--append-to-version[specify additional kernel sub-version]:suffix:' \
-   '--added-modules[specify add-on modules]:module list:' \
+   '--added-modules[specify add-on modules]:module list:->addedmodules' \
    '--added-patches[specify additional patches]:patches list' \
    '--arch[specify architecture for cross-compilation]:architecture' \
    '--cross-compile[specify target string]:target' \
@@ -42,4 +45,13 @@ _arguments \
         configure\:"configure the kernel" \
         debian\:"creates the debian/ directory" \
         libc-kheaders\:"create the kernel headers package needed by libc" \
-        ))'
+        ))' && return 0
+
+case "$state" in
+  (addedmodules)
+    compset -P '*,'
+    _alternative \
+      'moddirs:module dirs:_files -/ -S ,' \
+      'modules:loc module dirs:_files -/ -W ${MODULE_LOC:-/usr/src/modules} -S ,'
+  ;;
+esac