diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-05-18 22:49:13 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-05-18 22:49:13 +0000 |
commit | b37bfae3dbc3e8aaba9efef934dfc68e486401ad (patch) | |
tree | 9ef2227a34b19e3569bf405509fe55446979de44 /build_tools | |
parent | 6a06329e28739cf6f8c8c0ffdb51306cca9bd5f4 (diff) |
Add an sha1sum-workalike for platforms which don't have it (like Mac OS X)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@263905 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'build_tools')
-rwxr-xr-x | build_tools/sha1sum-sh | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/build_tools/sha1sum-sh b/build_tools/sha1sum-sh new file mode 100755 index 000000000..33d53f1b5 --- /dev/null +++ b/build_tools/sha1sum-sh @@ -0,0 +1,71 @@ +#!/bin/sh + +check=0 +status=0 + +while [ x"$1" != x ]; do + case $1 in + -c) + check=1 + shift + continue;; + --status) + status=1 + shift + continue;; + -*) + if [ $status = 0 ]; then + echo "Unrecognized option $1" 1>&2 + fi + exit 1 + ;; + *) + dst=$1 + shift + continue;; + esac +done + +if [ x"$dst" = x ]; then + if [ $status = 0 ]; then + echo "Usage: $0 [<options>] <filename>" 1>&2 + fi + exit 1 +fi + +if [ $check = 1 ]; then + if [ -f $dst ]; then + sum1=`cut -d' ' -f1 $dst` + file=`cut -d' ' -f3 $dst` + sum2=`openssl sha1 $file | cut -d' ' -f2` + if [ x"$sum1" = x"$sum2" ]; then + if [ $status = 0 ]; then + echo "$dst: OK" + fi + exit 0 + else + if [ $status = 0 ]; then + echo "$dst: FAILED" + fi + exit 1 + fi + else + echo "$0: $dst: No such file or directory" 1>&2 + exit 1 + fi +else + if [ x"$status" = x1 ]; then + echo "$0: the --status option is meaningful only when verifying checksums" 1>&2 + exit 1 + fi + + if [ -f $dst ]; then + sum=`openssl sha1 $dst | cut -d' ' -f2` + echo "$dst $sum" + exit 0 + else + echo "$0: $dst: No such file or directory" 1>&2 + exit 1 + fi +fi + |