aboutsummaryrefslogtreecommitdiffstats
path: root/build_tools
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-05-18 22:49:13 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2010-05-18 22:49:13 +0000
commitb37bfae3dbc3e8aaba9efef934dfc68e486401ad (patch)
tree9ef2227a34b19e3569bf405509fe55446979de44 /build_tools
parent6a06329e28739cf6f8c8c0ffdb51306cca9bd5f4 (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-xbuild_tools/sha1sum-sh71
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
+