diff options
author | Nick White <git@njw.me.uk> | 2009-04-13 12:31:42 +0100 |
---|---|---|
committer | Nick White <git@njw.me.uk> | 2009-04-13 12:31:42 +0100 |
commit | 1bbff3ce1b261ef9cb6ba217ca0d8fcb54971513 (patch) | |
tree | ac5ca6418afec68f5f5c3f2f84601559d41d144b /includes/cd-includes.sh | |
download | gemrb-gameinstallers-1bbff3ce1b261ef9cb6ba217ca0d8fcb54971513.tar.bz2 gemrb-gameinstallers-1bbff3ce1b261ef9cb6ba217ca0d8fcb54971513.zip |
Initial import
Diffstat (limited to 'includes/cd-includes.sh')
-rw-r--r-- | includes/cd-includes.sh | 52 |
1 files changed, 52 insertions, 0 deletions
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 +} |