summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--Completion/Unix/Command/_postfix18
2 files changed, 17 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index d33d9b2c0..27e56d6fb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2016-08-30 Daniel Shahaf <d.s@daniel.shahaf.name>
+ * 39107: Completion/Unix/Command/_postfix: Complete
+ 'postqueue'. Also minor tweaks to 'postsuper'.
+
* 39109: Completion/Unix/Command/_postfix: Use mailq to obtain
queue id's.
diff --git a/Completion/Unix/Command/_postfix b/Completion/Unix/Command/_postfix
index 68115694f..2e6a0a04d 100644
--- a/Completion/Unix/Command/_postfix
+++ b/Completion/Unix/Command/_postfix
@@ -1,4 +1,4 @@
-#compdef postsuper
+#compdef postqueue postsuper
_postfix_queue_id() {
compadd "$@" -- ${${(M)${(f)"$(_call_program mailq 'mailq')"}:#(#s)([0-9A-F]##)*}/(#s)(#b)([0-9A-F]##)*/$match[1]}
@@ -6,15 +6,25 @@ _postfix_queue_id() {
case $service in
(postsuper)
- _arguments -C \
+ _arguments -C -s : \
'-p[purge old tempfiles]' \
'-s[structure check and repair]' \
- '-v[verbose]' \
+ '*-v[verbose]' \
'-c[configdir]:config dir:_files -/' \
'-d[delete]:queue id:_postfix_queue_id' \
'-h[hold]:queue id:_postfix_queue_id' \
'-H[release]:queue id:_postfix_queue_id' \
- '-r[requeue]:queue id:_postfix_queue_id' \
+ '*-r[requeue]:queue id, or "ALL":_postfix_queue_id' \
'1:queue:(hold incoming active deferred)'
;;
+ (postqueue)
+ _arguments -C -s : \
+ '*-v[enable verbose logging]' \
+ '-c[configdir]:config dir:_files -/' \
+ '(-f -i -j -p -s)-f[flush the queue]' \
+ '(-f -i -j -p -s)-i[immediately deliver one message]:queue id:_postfix_queue_id' \
+ '(-f -i -j -p -s)-j[print the queue in json]' \
+ '(-f -i -j -p -s)-p[print the queue in traditional format]' \
+ '(-f -i -j -p -s)-s[immediately deliver messages to specified site]:site:_hosts'
+ ;;
esac