zsh-workers
 help / color / mirror / code / Atom feed
* [patch] Add _cksum
@ 2018-04-14  3:37 Matthew Martin
  2018-04-14  3:42 ` Matthew Martin
  0 siblings, 1 reply; 2+ messages in thread
From: Matthew Martin @ 2018-04-14  3:37 UTC (permalink / raw)
  To: zsh-workers

Add completion for cksum (sum, md[245], rmd160, sha*).

Is there a way to not repeat algoithm in
'*-a+[use the specfied algorithm(s)]:algorithm:_values -s , algotithm cksum md5 rmd160 sha1 sha224 sha256 sha384 sha512/256 sha512'

- Matthew Martin


diff --git a/Completion/BSD/Command/_cksum b/Completion/BSD/Command/_cksum
new file mode 100644
index 000000000..24edc7252
--- /dev/null
+++ b/Completion/BSD/Command/_cksum
@@ -0,0 +1,67 @@
+#compdef cksum sum=cksum md2 md4 md5 rmd160 sha1 sha256 sha512
+
+if [[ $OSTYPE == (dragonfly|freebsd)* && service == cksum ]]; then
+  _arguments -s -S -A '-*' \
+    '-o[use specified historic algorithm]:historic algorithm:(1 2 3)' \
+    '*:_files'
+
+else
+  local -a args
+
+  case $OSTYPE in
+    dragonfly*|freebsd*|netbsd*)
+      args+=(
+        '-t[run built-in time trial]'
+      )
+      ;|
+    dragonfly*|freebsd*|openbsd*)
+      args+=(
+        '-r[reverse the output format]'
+      )
+      ;|
+    dragonfly*)
+      args+=(
+        '-b+[begin at specified offset]:begin offset: '
+        '-e+[end at specified offset]:end offset: '
+      )
+      ;;
+    freebsd*)
+      args+=(
+        '-c+[compare digest against specified string]:digest string: '
+      )
+      ;;
+    netbsd*)
+      args+=(
+        '(*)-c+[compare checksums against specifed sumfile]:sumfile:_files'
+        '-n[reverse the output format]'
+        '-w[warn on malformed checksum files]'
+      )
+      if [[ $service == cksum ]]; then
+        args=(
+          '(-o)-a+[use the specfied algorithm(s)]:algorithm:(crc md2 md4 md5 old1 old2 rmd160 sha1 sha256 sha384 sha512)'
+          '(-a)-o+[use the specfied historic algorithm]:historic algorithm:(1 2)'
+        )
+      fi
+      ;;
+    openbsd*)
+      args+=(
+        '-b[output in base 64]'
+        '-C+[compare checksums against specifed checklist]:checklist:_files'
+        '-c[file arguments are checklists]'
+        '-h+[output to specified hashfile]:hashfile:_files'
+        '*-t[run built-in time trial]'
+      )
+      if [[ $service == cksum ]]; then
+        args+=('*-a+[use the specfied algorithm(s)]:algorithm:_values -s , algotithm cksum md5 rmd160 sha1 sha224 sha256 sha384 sha512/256 sha512')
+      fi
+      ;;
+  esac
+
+  _arguments -s -S -A '-*' \
+    $args \
+    '-p[echo stdin to stdout]' \
+    '-q[quiet mode]' \
+    '-s+[checksum specified string]:string: ' \
+    '-x[run built-in test]' \
+    '*:_files'
+fi


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [patch] Add _cksum
  2018-04-14  3:37 [patch] Add _cksum Matthew Martin
@ 2018-04-14  3:42 ` Matthew Martin
  0 siblings, 0 replies; 2+ messages in thread
From: Matthew Martin @ 2018-04-14  3:42 UTC (permalink / raw)
  To: zsh-workers

On Fri, Apr 13, 2018 at 10:37:50PM -0500, Matthew Martin wrote:
> diff --git a/Completion/BSD/Command/_cksum b/Completion/BSD/Command/_cksum
> new file mode 100644
> index 000000000..24edc7252
> --- /dev/null
> +++ b/Completion/BSD/Command/_cksum
> @@ -0,0 +1,67 @@
> +#compdef cksum sum=cksum md2 md4 md5 rmd160 sha1 sha256 sha512

Apologies for the noise. The compdef line should be the following for
FreeBSD. If desired I can resend a complete patch.

#compdef cksum sum=cksum md2 md4 md5 rmd160 sha1 sha256 sha384 sha512 sha512t256

- Matthew Martin


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-04-14  3:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-14  3:37 [patch] Add _cksum Matthew Martin
2018-04-14  3:42 ` Matthew Martin

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).