#!/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