summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNickDaly <myownlittlworld@hotmail.com>2009-06-06 17:55:30 -0500
committerNickDaly <myownlittlworld@hotmail.com>2009-06-06 17:55:30 -0500
commitc93108cc3cbc1cc685811776b9b771aef34fa25f (patch)
tree7984a62541e7a0e94cfa6dc2ebc4665a6d4434a4
parentf197b4b654ec882a333e9d488163a75cb3fb83e5 (diff)
downloadgemrb-gameinstallers-c93108cc3cbc1cc685811776b9b771aef34fa25f.tar.bz2
gemrb-gameinstallers-c93108cc3cbc1cc685811776b9b771aef34fa25f.zip
Moved the list of games into an external file (includes/cd-list.sh).
-rwxr-xr-xauto-installer.sh101
-rw-r--r--includes/autoinstall-includes.sh35
-rw-r--r--includes/cd-includes.sh2
-rw-r--r--includes/cd-list.sh~97
-rw-r--r--includes/generic-includes.sh29
5 files changed, 145 insertions, 119 deletions
diff --git a/auto-installer.sh b/auto-installer.sh
index e51d19e..beffa06 100755
--- a/auto-installer.sh
+++ b/auto-installer.sh
@@ -28,89 +28,14 @@ source "$scriptdir/includes/generic-includes.sh"
source "$scriptdir/includes/cd-includes.sh"
source "$scriptdir/includes/patch-includes.sh"
source "$scriptdir/includes/autoinstall-includes.sh"
+source "$scriptdir/includes/cd-list.sh"
parseargs "$@"
echo "Checking CD version"
-CDMD5=$(md5sum $CDMOUNT/data1.cab|awk '{print $1}')
+export CDMD5=$(md5sum "${CDMOUNT}/data1.cab"|awk '{print $1}')
-while [ -z "$MINSCRIPT" ]; do
- case "$CDMD5" in
- $BG1_5CD_INTL_MD5 )
- FULLGAMENAME="Baldurs Gate 1: 5CD International version"
- SHORTGAMENAME="baldursgate1"
- MINSCRIPT="bg1/install-5cd-minimal.sh"
- EXTRASCRIPT="bg1/install-5cd-extra.sh"
- PATCHES="bg1/install-patch-intl.sh bg1/install-patch-baldurdash-fix.sh bg1/install-patch-baldurdash-text.sh"
- WINDOWSFILES="baldur.exe bgmain.exe config.exe keymap.ini luaauto.cfg update.url"
- CDNO=5
- ;;
- $BG1_TOTSC_3CD_US_MD5 )
- FULLGAMENAME="Baldurs Gate 1 & Tales of the Sword Coast: 3CD US version"
- SHORTGAMENAME="baldursgate1totsc"
- MINSCRIPT="bg1/install-3cd-minimal.sh"
- EXTRASCRIPT="bg1/install-3cd-extra.sh"
- PATCHES="bg1/install-patch-baldurdash-fix.sh bg1/install-patch-totsc-baldurdash-text.sh"
- WINDOWSFILES="baldur.exe bgmain.exe config.exe keymap.ini luaauto.cfg update.url"
- CDNO=3
- ;;
- $BG1_TOTSC_1CD_UK_MD5 )
- FULLGAMENAME="Baldurs Gate 1 & Tales of the Sword Coast: 1CD UK version"
- SHORTGAMENAME="baldursgate1totsc"
- MINSCRIPT="bg1/install-1cd-totsc-uk.sh"
- PATCHES="bg1/install-patch-totsc-uk.sh bg1/install-patch-baldurdash-fix.sh bg1/install-patch-totsc-baldurdash-text.sh"
- WINDOWSFILES="bgmain2.exe baldur.exe config.exe mconvert.exe"
- ;;
- $BG2_4CD_US_MD5 )
- FULLGAMENAME="Baldurs Gate 2 - Shadows of Amn: 4CD US version"
- SHORTGAMENAME="baldursgate2soa"
- MINSCRIPT="bg2/install-4cd-minimal-us.sh"
- # TODO: uncomment when complete EXTRASCRIPT="bg2/install-4cd-extra-us.sh"
- PATCHES="" # TODO: fill in patches
- # bg2/install-patch-soa-us.sh bg2/install-patch-baldurdash-fix.sh bg2/install-patch-soa-baldurdash-text.sh"
- WINDOWSFILES="bgdxtest.exe bggltest.exe glsetup.exe bgconfig.exe bgmain.exe charview.exe"
- ;;
- # $BG2_TOB_1CD_US_MD5 )
- # FULLGAMENAME="Baldurs Gate 2 - Throne of Bhaal: 1CD US version"
- # SHORTGAMENAME="baldursgate2tob"
- # MINSCRIPT="bg2/install-1cd-tob-us.sh"
- # PATCHES="" # TODO: fill in patches
- # # bg2/install-patch-totsc-uk.sh bg1/install-patch-baldurdash-fix.sh bg1/install-patch-totsc-baldurdash-text.sh"
- # # TODO: correct the list of windows files.
- # WINDOWSFILES="" # "bgmain2.exe baldur.exe config.exe mconvert.exe"
- # ;;
- $PST_2CD_MD5 )
- FULLGAMENAME="Planescape Torment: 2CD version"
- SHORTGAMENAME="planescapetorment"
- MINSCRIPT="pst/install-2cd-minimal.sh"
- EXTRASCRIPT="pst/install-2cd-extra.sh"
- WINDOWSFILES="torment.exe ereg"
- CDNO=2
- ;;
- $PST_4CD_MD5 )
- FULLGAMENAME="Planescape Torment: 4CD version"
- SHORTGAMENAME="planescapetorment"
- MINSCRIPT="pst/install-4cd-minimal.sh"
- EXTRASCRIPT="pst/install-4cd-extra.sh"
- PATCHES="pst/install-patch-official.sh"
- WINDOWSFILES="torment.exe ereg"
- CDNO=4
- ;;
- $IWD_2CD_UK_MD5 )
- FULLGAMENAME="Icewind Dale 2CD UK version"
- SHORTGAMENAME="icewinddale"
- MINSCRIPT="iwd/install-2cd-uk-minimal.sh"
- EXTRASCRIPT="iwd/install-2cd-uk-extra.sh"
- PATCHES="iwd/install-patch-uk-fix.sh iwd/install-patch-us.sh"
- WINDOWSFILES="3dfx.dll config.exe icewind.ini keymap.ini language.ini mpicewnd.mpi"
- CDNO=2
- ;;
- * )
- echo "Unrecognised CD - please select game from menu"
- choosegame
- ;;
- esac
-done
+get_game
[ -z "$TARGETDIR" ] && [ -n "$SHORTGAMENAME" ] && export TARGETDIR="$PWD/$SHORTGAMENAME"
[ -z "$TARGETDIR" ] && diequietly
@@ -130,13 +55,23 @@ if [ -n "$EXTRASCRIPT" ]; then
fi
fi
+if [ -n "$EXPANSIONSCRIPT" && "$FULLINSTALL" -eq 0 ]; then
+ if query "Do you want to install the files needed by the expansion $EXPANSIONNAME?" y; then
+ EXPANSIONINSTALL=1
+ "${scriptdir}/${EXPANSIONSCRIPT}" -i "$TARGETDIR" -c "$CDMOUNT" 1>/dev/null || diequietly
+ else
+ EXPANSIONINSTALL=0
+ fi
+fi
+
+
if [ -n "$PATCHES" ]; then
- for patch in $PATCHES; do
+ for patch in "$PATCHES"; do
patch="$scriptdir/$patch"
# grab 17th line from scripts (description line; after license)
- patchtitle=$(sed -n 17p $patch|cut -d ' ' -f 2-)
+ patchtitle=$(sed -n 17p "$patch"|cut -d ' ' -f 2-)
if query "Do you want to install $patchtitle" y; then
- $patch \
+ "$patch" \
-i "$TARGETDIR" \
-p "$PATCHDIR" \
-l "$LANGUAGE" \
@@ -148,8 +83,8 @@ fi
if [ -n "$WINDOWSFILES" ]; then
if query "Do you want to remove unneeded windows files?" n; then
- for badfile in $WINDOWSFILES; do
- rm -rf "$TARGETDIR"/$badfile
+ for badfile in "$WINDOWSFILES"; do
+ rm -rf "${TARGETDIR}/${badfile}"
done
fi
fi
diff --git a/includes/autoinstall-includes.sh b/includes/autoinstall-includes.sh
index 8f80036..933e731 100644
--- a/includes/autoinstall-includes.sh
+++ b/includes/autoinstall-includes.sh
@@ -38,41 +38,6 @@ function query
done
}
-function choosegame
-{
- while true; do
- choice=0
- echo "Choose the game to install from the list:"
- echo "1 | Baldur's Gate 1 (5CD International version)"
- echo "2 | Baldurs Gate & Tales of the Sword Coast (3CD US version)"
- echo "3 | Tales of the Sword Coast (1CD UK version)"
- echo "4 | Planescape: Torment (4CD version)"
- echo "5 | Planescape: Torment (2CD version)"
- echo "6 | Icewind Dale (2CD UK version)"
- echo "7 | Icewind Dale 2 (2CD version)"
-
- read -n 1 choice
- echo
-
- case $choice in
- 1 ) export CDMD5="138528155dfeb695bd63f90eacee7dc0"
- return 0 ;;
- 2 ) export CDMD5="1a6828b97a27967e8c4acc25e1ef48d2"
- return 0 ;;
- 3 ) export CDMD5="e27d259ddc0171ff945dbba136e60309"
- return 0 ;;
- 4 ) export CDMD5="5e8c2075163aca124de4a467fb33063d"
- return 0 ;;
- 5 ) export CDMD5="640b61443cc86c434f1b6826e63c0e33"
- return 0 ;;
- 6 ) export CDMD5="b79582f4f80270d48e6b26f529ba31dd"
- return 0 ;;
- 7 ) export CDMD5="77307366ba3e8a246f6f238cbb3b7874"
- return 0 ;;
- esac
- done
-}
-
function recommendcfg
{
# usage: recommendcfg [numofcds]
diff --git a/includes/cd-includes.sh b/includes/cd-includes.sh
index 3ef9670..86359ea 100644
--- a/includes/cd-includes.sh
+++ b/includes/cd-includes.sh
@@ -32,7 +32,7 @@ export IWD_2CD_US_MD5="b79582f4f80270d48e6b26f529ba31dd"
export IWD_2CD_UK_MD5="b79582f4f80270d48e6b26f529ba31dd"
export IWD_HOW_1CD_US_MD5="d2c42de47026f6384053965319ff511b"
-export IWD2_2CD_US_MD5="77307366ba3e8a246f6f238cbb3b7874"
+export IWD2_2CD_INTL_MD5="77307366ba3e8a246f6f238cbb3b7874"
# a record of every IE collection I can find.
export IWD_ULTIMATE_COLLECTION_MD5=""
diff --git a/includes/cd-list.sh~ b/includes/cd-list.sh~
new file mode 100644
index 0000000..17cdfe6
--- /dev/null
+++ b/includes/cd-list.sh~
@@ -0,0 +1,97 @@
+#!/bin/bash
+# Copyright 2009 Nick White
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# See <http://www.gnu.org/licenses/> for a copy of the GNU General
+# Public License.
+#
+# Selects the appropriate installer(s) for an Infinity Engine game,
+# based on the CD inserted
+
+while [ -z "$MINSCRIPT" ]; do
+ case "$1" in
+ $BG1_5CD_INTL_MD5 )
+ FULLGAMENAME="Baldurs Gate 1: 5CD International version"
+ SHORTGAMENAME="baldursgate1"
+ MINSCRIPT="bg1/install-5cd-minimal.sh"
+ EXTRASCRIPT="bg1/install-5cd-extra.sh"
+ PATCHES="bg1/install-patch-intl.sh bg1/install-patch-baldurdash-fix.sh bg1/install-patch-baldurdash-text.sh"
+ WINDOWSFILES="baldur.exe bgmain.exe config.exe keymap.ini luaauto.cfg update.url"
+ CDNO=5
+ ;;
+ $BG1_TOTSC_3CD_US_MD5 )
+ FULLGAMENAME="Baldurs Gate 1 & Tales of the Sword Coast: 3CD US version"
+ SHORTGAMENAME="baldursgate1totsc"
+ MINSCRIPT="bg1/install-3cd-minimal.sh"
+ EXTRASCRIPT="bg1/install-3cd-extra.sh"
+ PATCHES="bg1/install-patch-baldurdash-fix.sh bg1/install-patch-totsc-baldurdash-text.sh"
+ WINDOWSFILES="baldur.exe bgmain.exe config.exe keymap.ini luaauto.cfg update.url"
+ CDNO=3
+ ;;
+ $BG1_TOTSC_1CD_UK_MD5 )
+ FULLGAMENAME="Baldurs Gate 1 & Tales of the Sword Coast: 1CD UK version"
+ SHORTGAMENAME="baldursgate1totsc"
+ MINSCRIPT="bg1/install-1cd-totsc-uk.sh"
+ PATCHES="bg1/install-patch-totsc-uk.sh bg1/install-patch-baldurdash-fix.sh bg1/install-patch-totsc-baldurdash-text.sh"
+ WINDOWSFILES="bgmain2.exe baldur.exe config.exe mconvert.exe"
+ ;;
+ $BG2_4CD_US_MD5 )
+ FULLGAMENAME="Baldurs Gate 2 - Shadows of Amn: 4CD US version"
+ SHORTGAMENAME="baldursgate2soa"
+ MINSCRIPT="bg2/install-4cd-minimal-us.sh"
+ # TODO: uncomment when complete EXTRASCRIPT="bg2/install-4cd-extra-us.sh"
+ EXPANSIONSCRIPT=
+ PATCHES="" # TODO: fill in patches
+ # bg2/install-patch-soa-us.sh bg2/install-patch-baldurdash-fix.sh bg2/install-patch-soa-baldurdash-text.sh"
+ WINDOWSFILES="bgdxtest.exe bggltest.exe glsetup.exe bgconfig.exe bgmain.exe charview.exe"
+ ;;
+ # $BG2_TOB_1CD_US_MD5 )
+ # FULLGAMENAME="Baldurs Gate 2 - Throne of Bhaal: 1CD US version"
+ # SHORTGAMENAME="baldursgate2tob"
+ # MINSCRIPT="bg2/install-1cd-tob-us.sh"
+ # PATCHES="" # TODO: fill in patches
+ # # bg2/install-patch-totsc-uk.sh bg1/install-patch-baldurdash-fix.sh bg1/install-patch-totsc-baldurdash-text.sh"
+ # # TODO: correct the list of windows files.
+ # WINDOWSFILES="" # "bgmain2.exe baldur.exe config.exe mconvert.exe"
+ # ;;
+ $PST_2CD_MD5 )
+ FULLGAMENAME="Planescape Torment: 2CD version"
+ SHORTGAMENAME="planescapetorment"
+ MINSCRIPT="pst/install-2cd-minimal.sh"
+ EXTRASCRIPT="pst/install-2cd-extra.sh"
+ WINDOWSFILES="torment.exe ereg"
+ CDNO=2
+ ;;
+ $PST_4CD_MD5 )
+ FULLGAMENAME="Planescape Torment: 4CD version"
+ SHORTGAMENAME="planescapetorment"
+ MINSCRIPT="pst/install-4cd-minimal.sh"
+ EXTRASCRIPT="pst/install-4cd-extra.sh"
+ PATCHES="pst/install-patch-official.sh"
+ WINDOWSFILES="torment.exe ereg"
+ CDNO=4
+ ;;
+ $IWD_2CD_UK_MD5 )
+ FULLGAMENAME="Icewind Dale 2CD UK version"
+ SHORTGAMENAME="icewinddale"
+ MINSCRIPT="iwd/install-2cd-uk-minimal.sh"
+ EXTRASCRIPT="iwd/install-2cd-uk-extra.sh"
+ PATCHES="iwd/install-patch-uk-fix.sh iwd/install-patch-us.sh"
+ WINDOWSFILES="3dfx.dll config.exe icewind.ini keymap.ini language.ini mpicewnd.mpi"
+ CDNO=2
+ ;;
+ * )
+ echo "Unrecognised CD - please select game from menu"
+ choosegame
+ ;;
+ esac
+done
diff --git a/includes/generic-includes.sh b/includes/generic-includes.sh
index ac62dd2..1ed5472 100644
--- a/includes/generic-includes.sh
+++ b/includes/generic-includes.sh
@@ -152,6 +152,24 @@ function copylower
fi
}
+function setlower
+{
+ # usage: setlower target
+ if [ "$1" ]
+ then
+ cd "$1"
+ for each_file in "`find ./ -iname "*"`"
+ do
+ lower="`echo "$each_file" | tr "[:upper:]" "[:lower:]"`"
+
+ if [ "$each_file" != "$lower" ]
+ then
+ mv "$each_file" "$lower"
+ fi
+ done
+ fi
+}
+
function move_and_remove
{
# usage: move_and_remove source destination
@@ -160,3 +178,14 @@ function move_and_remove
cp -R "$1/"* "$2" || die
rm -r "$1"
}
+
+function teardown
+{
+ # usage: teardown target
+ if [ "$1" ]
+ then
+ cleanuptmp
+ setperms "$1"
+ setlower "$1"
+ fi
+}