summaryrefslogtreecommitdiff
path: root/includes/cd-includes.sh
diff options
context:
space:
mode:
authorNick White <git@njw.me.uk>2009-04-13 12:31:42 +0100
committerNick White <git@njw.me.uk>2009-04-13 12:31:42 +0100
commit1bbff3ce1b261ef9cb6ba217ca0d8fcb54971513 (patch)
treeac5ca6418afec68f5f5c3f2f84601559d41d144b /includes/cd-includes.sh
downloadgemrb-gameinstallers-1bbff3ce1b261ef9cb6ba217ca0d8fcb54971513.tar.bz2
gemrb-gameinstallers-1bbff3ce1b261ef9cb6ba217ca0d8fcb54971513.zip
Initial import
Diffstat (limited to 'includes/cd-includes.sh')
-rw-r--r--includes/cd-includes.sh52
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
+}