aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-28 19:54:54 +0000
committerqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-28 19:54:54 +0000
commit814aba3a88e4d22b85b16eabf9f1391787e7e379 (patch)
treeced1a65a43f6813fea1b67e7b4c143aac082a84e
parentb10905786b47809e3b4261ed2ee113602b1cb38b (diff)
Add sha1sum-sh in case there is no util on the system.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.2@280227 f38db490-d61c-443f-a65b-d21fe96a405b
-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
+