about summary refs log tree commit diff
path: root/Completion/BSD/Command/_jexec
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/BSD/Command/_jexec')
-rw-r--r--Completion/BSD/Command/_jexec19
1 files changed, 19 insertions, 0 deletions
diff --git a/Completion/BSD/Command/_jexec b/Completion/BSD/Command/_jexec
new file mode 100644
index 000000000..f065ea1e0
--- /dev/null
+++ b/Completion/BSD/Command/_jexec
@@ -0,0 +1,19 @@
+#compdef jexec
+
+_jexec_normal() {
+  local PATH=$PATH
+  # relative paths are relative to the jail's root
+  path=( "$(command jls -j $words[1] path)"/$^path )
+  shift 1 words; (( CURRENT-- ))
+  _normal
+}
+
+_jexec() {
+  _arguments -s -w -A "-*" : \
+    '(-U)-u[host environment user whom command runs as]:host user:_users' \
+    '(-u)-U[jail environment user whom command runs as]:jail user:_users' \
+    '1:jail:_jails' \
+    '*:: : _jexec_normal'
+}
+
+_jexec "$@"