From 97a7e8464438e173a357ea9a272f91e26a789ac5 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 7 Apr 2015 18:11:06 -0400 Subject: initial commit --- sbodl | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100755 sbodl (limited to 'sbodl') diff --git a/sbodl b/sbodl new file mode 100755 index 0000000..724733d --- /dev/null +++ b/sbodl @@ -0,0 +1,88 @@ +#!/bin/bash + +# sbodl, initial public release. + +SELF=$( basename $0 ) + +usage() { + cat < + +Execute $SELF in the directory that contains the .info and .SlackBuild +files. It will use wget to download the source file(s), then check their +md5sums. + +$SELF doesn't take any options itself (except --help), but any options +you pass to it will be passed to wget. +EOF + exit 0 +} + +die() { + echo "$SELF: $*" 2>&1 + exit 1 +} + +# check for our one argument +case "$*" in + -h|-help|-\?|--help) usage ;; +esac + +source ./$( basename $( pwd ) ).info \ + || die "No .info file, are you sure this is a SBo directory? Try '$SELF --help'" + +# This stanza copied from the SBo template for 14.1: +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ "$ARCH" = "x86_64" ]; then + DL=${DOWNLOAD_x86_64:-$DOWNLOAD} + SUM=${MD5SUM_x86_64:-$MD5SUM} +else + DL=$DOWNLOAD + SUM=${MD5SUM} +fi + +if [ -z "$DL" ]; then + die "Bad .info file (no DOWNLOAD= or DOWNLOAD_x86_64=)." +fi + +# save passed-in command line args for use with wget +WGETARGS="$@" + +set $SUM + +for dl in $DL; do + EXTRAWGETARGS="--content-disposition " + case "$dl" in + *sourceforge.net/*|*.sf.net/*) EXTRAWGETARGS="--user-agent wget" ;; + *) ;; + esac + + FILE=$( echo "$dl" | sed 's,.*/,,' ) + + wget $WGETARGS $EXTRAWGETARGS "$dl" || die "Download failed" + + if [ -e "$FILE" ]; then + GOTSUM="$( md5sum "$FILE" | cut -d' ' -f1 )" + if [ "$1" != "$GOTSUM" ]; then + echo "WARN: md5sum doesn't match, expected $1, got $GOTSUM" + else + echo "md5sum matches OK: $1" + fi + else + echo "WARN: can't find downloaded file $FILE" + fi + echo + shift +done -- cgit v1.2.3