valve/install_from_cd_goty.sh

95 lines
2.3 KiB
Bash

#!/bin/sh
# all new script that dumps the Half-Life: Game of the Year edition
# data onto your hard disk. make sure you have the CD-ROM inserted!
# pass HLDIR to tell it where to put the Half-Life files to.
# e.g. HLDIR=/tmp/Half-Life
# otherwise, it'll put it into the parent dir, of the working directory.
# pass TMPDIR to tell it where to put temporary install files to.
# e.g. TMPDIR=/tmp/gotycd
# otherwise, it'll put it into the current working directory.
set -e
SETUP_SHA256="3b2b35e27aa7c54bedd39dd0074193dfcba9a3054623e93fc29f8f71779b082b"
TMPDIR="$(pwd)/tmp"
# allow user override
if [ -z "$CDROM_PATH" ]
then
CDROM_PATH="/mnt/cdrom"
SETUP_FILE="$CDROM_PATH/setup.exe"
fi
if [ -z "$HLDIR" ]
then
HLDIR="$(pwd)/.."
fi
if [ -z "$TMPDIR" ]
then
TMPDIR="$(pwd)/tmp"
fi
if [ "$1" = "-h" ]
then
printf "%s help\n\n" "$(basename $0)"
printf "pass HLDIR to tell it where to put the Half-Life files to.\n"
printf "e.g. HLDIR=/tmp/Half-Life.\n"
printf "otherwise, it'll put it into the parent dir, of the working directory\n\n"
printf "pass TMPDIR to tell it where to put temporary install files to.\n"
printf "e.g. TMPDIR=/tmp/gotycd.\n"
printf "otherwise, it'll put it into the current working directory.\n\n"
printf "HLDIR will require at least 356M disk space.\n"
printf "TMPDIR will require at least 462M disk space.\n"
exit 0
fi
if [ ! -x "$(command -v rewise)" ]
then
printf "rewise is not present. please build it and place it in PATH.\n"
printf "src: https://notabug.org/CYBERDEViL/REWise\n"
exit 2
fi
if [ ! -f "$SETUP_FILE" ]
then
printf "Please mount the Game of the Year edition CD-ROM.\n"
exit 2
fi
if [ -x "$(command -v sha256sum)" ]
then
CHECK=$(sha256sum "$SETUP_FILE" | awk '{ print $1 }')
elif [ -x "$(command -v sha256)" ]
then
CHECK=$(sha256 -q "$SETUP_FILE")
else
printf "No tool to validate sha256 sums with!\n"
exit 2
fi
if [ ! "$CHECK" = "$SETUP_SHA256" ]
then
printf "%s checksum mismatch.\n" "$SETUP_FILE"
exit 2
fi
if [ -d "$TMPDIR" ]
then
rm -rf "$TMPDIR"
fi
mkdir -p "$TMPDIR"
rewise -x "$TMPDIR" "$SETUP_FILE" &> /dev/null
# traverse the tmpdir, move files into the output location
while read LINE
do
FILE=$(printf "$LINE" | awk '{ print $2 }')
TMPFILE="$TMPDIR/MAINDIR/$FILE"
mkdir -p "$HLDIR/$(dirname $FILE)"
cp "$TMPFILE" "$HLDIR/$FILE"
done < "install_from_cd_goty.sha256"