#!/bin/sh # I mean... this sucks, I get it - but sadly we have to use Wine for this # because no one has made an installer extractor for Wine that works on # Linux. Sorry. # builds a pk3 file that's alphabetically sorted mk_pk3() { tree -fi > ./build_contents.txt sed -i '/build_contents/d' ./build_contents.txt sed -i '/directories,/d' ./build_contents.txt zip -0 "$1".pk3 -@ < ./build_contents.txt rm ./build_contents.txt mv "$1".pk3 ../"$1".pk3 } SCRPATH="$( cd "$( dirname $(readlink -nf $0) )" && pwd )" OUTPK3DIR="pak0_retail.pk3dir" if ! [ -x "$(command -v wine)" ]; then printf "Error: wine is not installed.\n" >&2 exit 1 fi if ! [ $# -gt 0 ]; then printf "Path to MOUNTED CD-ROM folder, e.g. /mnt/cdrom:\n" read CDROM_PATH else CDROM_PATH="$1" fi if ! [ -f "$CDROM_PATH"/rewolf/install.EXE ]; then printf "Error: install.EXE not found in $CDROM_PATH.\n" >&2 exit 1 fi # Set up a prefix that's 32-bit inside export WINEPREFIX="${SCRPATH}/prefix" export WINEARCH=win32 DATA_PATH="${WINEPREFIX}/drive_c/Sierra/Gunman/" # No pak0 present if ! [ -f "$SCRPATH/pak0_cd.pk3" ]; then # Check if we need to install the content, or throw a warning. if ! [ -f "$SCRPATH/$OUTPK3DIR/liblist.gam" ]; then # May already have been extracted here (debug) if ! [ -f "$DATA_PATH"/gunman.exe ]; then # Because /x does NOT preserve directories. wine "$CDROM_PATH"/rewolf/install.EXE /s fi # Move rewolf to become OUTPK3DIR mv "$DATA_PATH/rewolf" "$SCRPATH/$OUTPK3DIR" # Logos need to be in the game-dir mv "$DATA_PATH/logos" "$SCRPATH/$OUTPK3DIR/logos" else printf "$OUTPK3DIR already exists... everything okay?\n" fi # Make the pk3 archive cd "$SCRPATH/$OUTPK3DIR" mk_pk3 pak0_cd fi # Make sure we're back in here cd "$SCRPATH" # check if we need an icon.tga if ! [ -f "$SCRPATH/icon.tga" ]; then # imagemagick will help us get our icon if [ -x "$(command -v convert)" ]; then printf "Detected ImageMagick's convert... giving you a nice icon!\n" convert "$DATA_PATH/rewolf.ico" "$SCRPATH/rewolf.tga" rm "$SCRPATH/rewolf-0.tga" mv "$SCRPATH/rewolf-1.tga" "$SCRPATH/icon.tga" else printf "No ImageMagick found... can't give you a window icon then.\n" fi fi # Make sure we're back in here cd "$SCRPATH" printf "All done. Would you like to rip the the Compact Disc Digital Audio for music?\ny/n: " read CHOICE if [[ "$CHOICE" == [Yy]* ]]; then # check if we require rippin tunes if ! [ -f "$SCRPATH/music/track02.wav" ]; then if [ -x "$(command -v cdparanoia)" ]; then mkdir -p "./music" cd "./music" cdparanoia -B rename ".cdda." "." *.wav # I'd offer FLAC, but that also requires the ffmpeg plugin if [ -x "$(command -v oggenc)" ]; then printf "All done. Would you like to convert them to OGG for playback compatibility\nas well as space preservation (frees up ~150 MB)?\ny/n: " read CHOICE if [[ "$CHOICE" == [Yy]* ]]; then oggenc *.wav rm *.wav fi fi else printf "cdparanoia is missing. Cannot rip music.\nPlease run the installer again once you've got it installed.\n" fi else printf "Music was already present.\n" fi fi cd "$SCRPATH" # Be real careful here rm -rfv "./$OUTPK3DIR" rm -rfv "./prefix"