Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
[PATCH] Completion: Add _shuf, _tac, _uptime
- X-seq: zsh-workers 42919
- From: dana <dana@xxxxxxx>
- To: Zsh workers <zsh-workers@xxxxxxx>
- Subject: [PATCH] Completion: Add _shuf, _tac, _uptime
- Date: Sat, 2 Jun 2018 18:07:35 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dana-is.20150623.gappssmtp.com; s=20150623; h=from:content-transfer-encoding:mime-version:subject:message-id:date :to; bh=1do9VYsK8txqp4ByNWHw8UuSPh48+7NoxBho/1f/A3g=; b=hvlVxrUh0nj6omJtELyOzHagGhBT3DGZ5qPBaAN6EPU0IHMbrOsOGz02r6tQ6QfhOY RvOdqPZkX9IGgh19h2LkVAOd5u+VfcoCKGsfjqkcQN/+MSz6cZG6nbrEdbvEFnQF+I4E aiiz3DEsalSuTzxRfoBrkVzBjusGq9Vd5eVOosd62OS/rRzH+XHB3x//ck722gz58Ax8 lioFFT6TL+UnFbUKgBBJIJU2y2CxWf4t6wmXmgmRcGM+CPEL+juRLN9LuxY0FxKgQGaH FX5VNSZ4rGq0i38fiwHhXEWZ7Dg++IBPe3XSsJ6E58dDEXY/0S3qcupNAqpsSnaXWarh MO3g==
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- List-unsubscribe: <mailto:zsh-workers-unsubscribe@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
Since i'm in the ML mood anyway, here are three trivial completion functions
i've had sitting in my untracked for quite a while. These relate to shuf and tac
(from GNU Coreutils), and uptime (specifically the procps and GNU variants).
I feel like i had 10 or 20 more of these to send in, but i got discouraged, and
i guess Oliver, Martin, and Jun have taken care of several of them since then.
I'll try to sort through what i had left over and submit the rest soon.
dana
diff --git a/Completion/Unix/Command/_shuf b/Completion/Unix/Command/_shuf
new file mode 100644
index 000000000..83f42e6d3
--- /dev/null
+++ b/Completion/Unix/Command/_shuf
@@ -0,0 +1,28 @@
+#compdef shuf gshuf
+
+local ret=1
+local -a context line state state_descr
+local -A opt_args
+
+_arguments -s -S : \
+ '(: -)--help[display help information]' \
+ '(: -)--version[display version information]' \
+ '(-n --head-count)'{-n+,--head-count=}'[limit output to specified number of lines]:output line limit' \
+ '(-o --output)'{-o+,--output=}'[write result to specified file]:output file:_files' \
+ '--random-source=[use specified file as source of random bytes]: :_files' \
+ '(-r --repeat)'{-r,--repeat}'[allow output lines to repeat]' \
+ '(-z --zero-terminated)'{-z,--zero-terminated}'[use NUL as line delimiter]' \
+ '(-i --input-range)*: :->operands' \
+ + '(excl)' \
+ {-e,--echo}'[treat operands as input lines]' \
+ '(:)'{-i+,--input-range=}'[treat specified numbers as input lines]:number range (x-y)' \
+&& ret=0
+
+[[ $state == operands ]] &&
+if [[ -n ${opt_args[(i)excl-(-e|--echo)]} ]]; then
+ _message 'input line' && ret=0
+else
+ _files && ret=0
+fi
+
+return ret
diff --git a/Completion/Unix/Command/_tac b/Completion/Unix/Command/_tac
new file mode 100644
index 000000000..c2fbf9c6b
--- /dev/null
+++ b/Completion/Unix/Command/_tac
@@ -0,0 +1,9 @@
+#compdef tac gtac
+
+_arguments -s -S : \
+ '(: -)--help[display help information]' \
+ '(: -)--version[display version information]' \
+ '(-b --before)'{-b,--before}'[attach separator before instead of after]' \
+ '(-r --regex)'{-r,--regex}'[treat separator as regular expression (with -s)]' \
+ '(-s --separator)'{-s+,--separator=}'[use specified separator instead of newline]:separator' \
+ '*: :_files'
diff --git a/Completion/Unix/Command/_uptime b/Completion/Unix/Command/_uptime
new file mode 100644
index 000000000..58b4d991b
--- /dev/null
+++ b/Completion/Unix/Command/_uptime
@@ -0,0 +1,26 @@
+#compdef uptime guptime
+
+local variant
+
+_pick_variant -r variant procps=procps gnu='Free Soft' unix --version
+
+case $variant in
+ procps)
+ _arguments -s -S : \
+ '(: -)'{-h,--help}'[display help information]' \
+ '(: -)'{-V,--version}'[display version information]' \
+ + '(excl)' \
+ {-p,--pretty}'[display uptime in pretty format]' \
+ {-s,--since}'[display date/time of system boot]'
+ return
+ ;;
+ gnu)
+ _arguments -S : \
+ '(: -)--help[display help information]' \
+ '(: -)--version[display version information]' \
+ '1:utmp/wtmp file:_files'
+ return
+ ;;
+ # *BSD, Darwin, Solaris, BusyBox
+ *) _message 'no more arguments'; return 1 ;;
+esac
Messages sorted by:
Reverse Date,
Date,
Thread,
Author