zsh-workers
 help / color / mirror / code / Atom feed
3dfcd6322e897f66a7918fceb8358b12c8221892 blob 1795 bytes (raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
#compdef md5sum gmd5sum b2sum gb2sum sha1sum gsha1sum sha224sum gsha224sum sha256sum gsha256sum sha384sum gsha384sum sha512sum gsha512sum

# This function covers the various digest utilities (which are all essentially
# the same program) from GNU Coreutils. It does NOT cover GNU `cksum` and `sum`,
# nor the various BSD digest utilities like `md5` and `sha1` — see `_cksum` for
# all of those. See `_shasum` for the `shasum` Perl script.
#
# @todo Support BusyBox?

local type ign
local -a args

case $service in
  *md5*) type=MD5 ;;
  *b2*)  type=BLAKE2 ;;
  *sha*) type=SHA${service//[^0-9]/} ;;
esac

# General options
(( $#words > 2 )) && ign='!'
args=(
  '(: -)--help[display help information]'
  '(: -)--version[display version information]'
)
# Summing options
args=( ${ign}${^args}
  + sum
  '(chk)--tag[create BSD-style checksums]'
  '(chk -b -t --binary --text)'{-b,--binary}'[read in binary mode]'
  '(chk -b -t --binary --text)'{-t,--text}'[read in text mode]'
  '(chk -z --zero)'{-z,--zero}'[end each output line with NUL and disable filename escaping]'
)
# This is the only option that differs amongst all of these tools
[[ $service == *b2* ]] && args+=(
  '(chk -l --length)'{-l+,--length=}'[specify digest length]:digest length (bits, multiples of 8)'
)
# Verification options
args+=(
  + chk
  '(sum -c --check)'{-c,--check}"[verify $type checksums from input files]"
  "(sum)--ignore-missing[don't fail or report status for missing files]"
  "(sum)--quiet[don't print OK for each verified file]"
  '(sum -w --warn)--status[suppress all output]'
  '(sum)--strict[exit non-zero for improperly formatted checksum lines]'
  '(sum -w --status --warn)'{-w,--warn}'[warn about each improperly formatted checksum line]'
)
# Operands
args+=( '*: :_files' )

_arguments -s -S : $args
debug log:

solving 3dfcd6322 ...
found 3dfcd6322 in https://git.vuxu.org/mirror/zsh/

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).