about summary refs log tree commit diff
path: root/Completion
diff options
context:
space:
mode:
Diffstat (limited to 'Completion')
-rw-r--r--Completion/Unix/Command/.distfiles1
-rw-r--r--Completion/Unix/Command/_at39
2 files changed, 40 insertions, 0 deletions
diff --git a/Completion/Unix/Command/.distfiles b/Completion/Unix/Command/.distfiles
index 9b28418d5..cc47a7a0b 100644
--- a/Completion/Unix/Command/.distfiles
+++ b/Completion/Unix/Command/.distfiles
@@ -8,6 +8,7 @@ _apachectl
 _apm
 _arp
 _arping
+_at
 _attr
 _awk
 _baz
diff --git a/Completion/Unix/Command/_at b/Completion/Unix/Command/_at
new file mode 100644
index 000000000..4e2d28e27
--- /dev/null
+++ b/Completion/Unix/Command/_at
@@ -0,0 +1,39 @@
+#compdef atrm atq at batch
+
+local context state line expl
+typeset -A opt_args
+
+#todo (when extremely bored) make -l and -d do the atq and atrm completions
+case $service in
+atrm)
+  _arguments \
+    '-V[Print version number]' \
+    '*:job number:->jobs'
+  ;;
+atq)
+  _arguments \
+    '-V[Print version number]' \
+    '-q[Uses specified queue]:a-z+A-Z'
+  ;;
+at|batch)
+  _arguments \
+    - new-job \
+      '-V[Print version number]' \
+      '-q[Uses specified queue, uppercase acts as batch]:a-z+A-Z' \
+      '-f[Read job from file rather than from stdin]:file:_files' \
+      '-v[Show the time the job will be executed]' \
+      '-m[Send mail even if there was no output]' \
+      ':time:' \
+    - atq \
+      '-l[Alias for atq]' \
+    - atrm \
+      '-d[Alias for atrm]' \
+    - show-job \
+      '-c[Cat specified jobs to stdout]:*:job number:->jobs'
+esac
+
+case $state in
+jobs)
+  _wanted job expl 'job number' compadd ${(M)${(f)"$(_call_program job atq)"}##<->}
+  ;;
+esac