From 1bbff3ce1b261ef9cb6ba217ca0d8fcb54971513 Mon Sep 17 00:00:00 2001 From: Nick White Date: Mon, 13 Apr 2009 12:31:42 +0100 Subject: Initial import --- includes/cd-includes.sh | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 includes/cd-includes.sh (limited to 'includes/cd-includes.sh') diff --git a/includes/cd-includes.sh b/includes/cd-includes.sh new file mode 100644 index 0000000..e3d00fd --- /dev/null +++ b/includes/cd-includes.sh @@ -0,0 +1,52 @@ +### default variables ### + +[ -z "$CDMOUNT" ] && export CDMOUNT="/media/cdrom" + +### functions ### + +function checkcd +{ + # usage: checkcd md5sum md5file + checksum=$(md5sum $2 2>/dev/null|awk '{print $1}') + + if [ "$checksum" != "$1" ]; then + return 1 + fi + + return 0 +} + +function getcd +{ + # usage: getcd cdnum [md5sum] [md5file] + # note we're redirecting to stderr to ensure questions + # are always shown + + if [ $# -ge 3 ]; then + answer="" + while [ $(checkcd $2 $CDMOUNT/$3; echo $?) -ne 0 ]; do + echo " * Insert CD $1 and press any key, or press 'c' to continue without checking" 1>&2 + read -sn 1 answer + if [ "$answer" == 'c' ]; then + return 0 + fi + done + else + echo "* Please insert CD $1 and press any key" 1>&2 + read -sn 1 + fi + + return 0 +} + +function copycdextras +{ + # usage: copycdextras cdnum + # essentially a case insensitive cp -R cd#/* + CDNUMBER=$1 + + for filename in $(find $CDMOUNT/[cC][dD]$CDNUMBER/ -type f || die); do + relativepath=$(echo $filename|gawk -F "$CDMOUNT/[cC][dD]$CDNUMBER" '{print $2}'|tr A-Z a-z) + cp $filename "$TARGETDIR"/$relativepath || die + done +} -- cgit v1.2.3