diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rwxr-xr-x | auto-installer.sh | 37 | ||||
-rwxr-xr-x | bg2/install-4cd-minimal-us.sh | 50 | ||||
-rw-r--r-- | includes/cd-includes.sh | 8 | ||||
-rw-r--r-- | includes/generic-includes.sh | 25 |
5 files changed, 101 insertions, 21 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7475063 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.pidaproject +*~ diff --git a/auto-installer.sh b/auto-installer.sh index 4c1fe99..1101e7a 100755 --- a/auto-installer.sh +++ b/auto-installer.sh @@ -39,28 +39,46 @@ while [ -z "$MINSCRIPT" ]; do $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 + 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 & Tales of the Sword Coast: 3CD US version" + 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 + 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 Tales of the Sword Coast: 1CD UK version" + FULLGAMENAME="Baldurs Gate 1 & Tales of the Sword Coast: 1CD UK version" SHORTGAMENAME="baldursgate1totsc" - MINSCRIPT=bg1/install-1cd-totsc-uk.sh + 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" @@ -93,13 +111,12 @@ done [ -d "$TARGETDIR" ] && export alwaysdiesafely=1 echo "$FULLGAMENAME detected, installing" - -"$scriptdir/$MINSCRIPT" -i "$TARGETDIR" -c "$CDMOUNT" 1>/dev/null || diequietly +"${scriptdir}/${MINSCRIPT}" -i "$TARGETDIR" -c "$CDMOUNT" 1>/dev/null || diequietly if [ -n "$EXTRASCRIPT" ]; then if query "Do you want to do a full install, so the CDs will not be needed again?" y; then FULLINSTALL=1 - "$scriptdir/$EXTRASCRIPT" -i "$TARGETDIR" -c "$CDMOUNT" 1>/dev/null || diequietly + "${scriptdir}/${EXTRASCRIPT}" -i "$TARGETDIR" -c "$CDMOUNT" 1>/dev/null || diequietly else FULLINSTALL=0 fi diff --git a/bg2/install-4cd-minimal-us.sh b/bg2/install-4cd-minimal-us.sh new file mode 100755 index 0000000..3f61614 --- /dev/null +++ b/bg2/install-4cd-minimal-us.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# +# Baldur's Gate 2 (4CD US version) Minimal Install +# Copyright (C) 2009 Nick Daly +# +# 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. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301 USA. + +scriptdir="$(dirname $0)"/.. +source "$scriptdir/includes/generic-includes.sh" +source "$scriptdir/includes/cd-includes.sh" + +parseargs "$@" + +checkforbin unshield + +getcd 1 $BG2_4CD_US_MD5 data1.cab + +mkdir -p "$TARGETDIR" || die +mkdir -p "${TARGETDIR}/portraits" || die + +cp $CDMOUNT/baldur.ico "$TARGETDIR" || die + +# FIXME: strip hd0_ from all folder names +unshield -L x $CDMOUNT/data1.cab -d "$TARGETDIR" || die + +rm -r "${TARGETDIR}/_"* # remove all the the fake directories. + +for i in "${TARGETDIR}/hd0_"* ; do j=`echo $i | sed 's#hd0_##g' - ` ; mv "$i" "$j" ; done + +move_and_remove "${TARGETDIR}/cab" "${TARGETDIR}" +move_and_remove "${TARGETDIR}/compiler" "${TARGETDIR}/script compiler" +move_and_remove "${TARGETDIR}/register" "${TARGETDIR}/eReg" +move_and_remove "${TARGETDIR}/sound" "${TARGETDIR}/sounds" + +rm -r "${TARGETDIR}/cache100" "${TARGETDIR}/cache/cache150" "${TARGETDIR}/mplayer" "${TARGETDIR}/Update.url" + +setperms "$TARGETDIR" diff --git a/includes/cd-includes.sh b/includes/cd-includes.sh index e7c2526..dfb0e68 100644 --- a/includes/cd-includes.sh +++ b/includes/cd-includes.sh @@ -17,19 +17,21 @@ [ -z "$CDMOUNT" ] && export CDMOUNT="/media/cdrom" +# the MD5sum of the data1.cab of the first CD in each set. export BG1_5CD_INTL_MD5="138528155dfeb695bd63f90eacee7dc0" export BG1_TOTSC_3CD_US_MD5="1a6828b97a27967e8c4acc25e1ef48d2" export BG1_TOTSC_1CD_UK_MD5="e27d259ddc0171ff945dbba136e60309" export BG2_4CD_US_MD5="8acf4a6348de916bfaf077469a427b65" +export BG2_TOB_1CD_US_MD5="b1f247a952c13cb8e0b6efc108aaeeaa" export PST_2CD_MD5="640b61443cc86c434f1b6826e63c0e33" export PST_4CD_MD5="5e8c2075163aca124de4a467fb33063d" -export IWD_2CD_US_MD5="" -export IWD_HOW_1CD_US_MD5="" +export IWD_2CD_US_MD5="b79582f4f80270d48e6b26f529ba31dd" +export IWD_HOW_1CD_US_MD5="d2c42de47026f6384053965319ff511b" -export IWD2_2CD_US_MD5="" +export IWD2_2CD_US_MD5="77307366ba3e8a246f6f238cbb3b7874" # a record of every IE collection I can find. export IWD_ULTIMATE_COLLECTION_MD5="" diff --git a/includes/generic-includes.sh b/includes/generic-includes.sh index 51cffcb..1e0e89d 100644 --- a/includes/generic-includes.sh +++ b/includes/generic-includes.sh @@ -56,13 +56,13 @@ function diequietly function setuptmp { - rm -rf $TMPDIR - mkdir -p $TMPDIR || die + rm -rf "$TMPDIR" + mkdir -p "$TMPDIR" || die } function cleanuptmp { - rm -rf $TMPDIR + rm -rf "$TMPDIR" } function checkforbin @@ -71,7 +71,7 @@ function checkforbin retstatus=0 while [ "$1" != "" ]; do - binname=$1 + binname="$1" which "$binname" &> /dev/null if [ $? -ne 0 ]; then @@ -110,13 +110,13 @@ function usage { echo "Usage:" $0 "[-i installdir] [-p patchdir] [-c cdmount] [-l language]" echo -e " -i installdir is the directory to install to." - echo -e " default:" $TARGETDIR + echo -e " default: ${TARGETDIR} (changes per game)" echo -e " -c cdmount is the mount location of the cd drive used." - echo -e " default:" $CDMOUNT + echo -e " default: ${CDMOUNT}" echo -e " -p patchdir is an optional directory containing patch files." - echo -e " default:" $PATCHDIR + echo -e " default: ${PATCHDIR}" echo -e " -l language can be one of English, Spanish, French, German, Italian or Language Independant" - echo -e " default:" $LANGUAGE + echo -e " default: ${LANGUAGE}" # TODO: Add option to show and select all known BG1 versions } @@ -150,3 +150,12 @@ function copylower cp -f "$(echo $1|tr A-Z a-z)" "$2" fi } + +function move_and_remove +{ + # usage: move_and_remove source destination + # copies the files in the source directory to the destination. + mkdir -p "$2" || die + cp -R "$1/"* "$2" || die + rm -r "$1" +} |