We now have automated extraction.
git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@147 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
Executable
+117
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/bash
|
||||
# Extracts 3do starcon.pkg file, using information from the new tree
|
||||
# as how to name the files.
|
||||
# By Serge van den Boom, 2002-10-23
|
||||
# The GPL applies.
|
||||
|
||||
if [ $# -ne 4 ]; then
|
||||
echo "Usage: unpackall.sh <3docdpath> <uqmcontentpath> <respath> <destpath>"
|
||||
echo -n "3docontentpath is the path to the starcon2/ dir from the "
|
||||
echo "original SC2 CD-ROM."
|
||||
echo -n "uqmocntentpath is the path to the content/ dir from the UQM cvs "
|
||||
echo "tree."
|
||||
echo "respath is the path to the .res files generated by collectres.sh"
|
||||
echo "destpath is the path to place the extracted files"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
CDPATH="${1%/}"/
|
||||
UQMPATH="${2%/}"/
|
||||
RESPATH="${3%/}"/
|
||||
DESTDIR="${4%/}"/
|
||||
TEMPDIR=/tmp/unpacksc2.$$/
|
||||
|
||||
UNPKG=./unpkg
|
||||
PARSERES=./parseres
|
||||
|
||||
if [ ! -e "$CDPATH"starcon.pkg ]; then
|
||||
echo "\"${CDPATH}\" is not a valid 3DO SC2 content dir"
|
||||
echo "It should be the dir starcon2/ from the original CD-ROM."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -e "${UQMPATH}starcon.ndx" ]; then
|
||||
echo "\"${UQMPATH}\" is not a valid 3DO SC2 content dir"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -e "${RESPATH}starcon.pkg.pc.res" -o \
|
||||
! -e "${RESPATH}starcon.pkg.3do.res" ]; then
|
||||
echo "\"${RESPATH}\" does not contain the needed .res files"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$DESTDIR" -o ! -w "$DESTDIR" ]; then
|
||||
echo "\"${DESTDIR}\" is not a good destination"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir "$TEMPDIR"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Could not create temp dir '$TEMPDIR'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export CDPATH UQMPATH RESPATH DESTDIR TEMPDIR
|
||||
unpackone() {
|
||||
PACKAGECD="$1"
|
||||
PACKAGEUQM="$2"
|
||||
SRCPATH="$3"
|
||||
|
||||
echo "$@"
|
||||
echo -n "Package $PACKAGECD: "
|
||||
$UNPKG -l "${UQMPATH}$PACKAGEUQM" > "${TEMPDIR}${PACKAGECD}.fil"
|
||||
|
||||
echo "unpacking... "
|
||||
$UNPKG -o "${DESTDIR}" "${SRCPATH}$PACKAGECD"
|
||||
|
||||
echo "renaming files... "
|
||||
local RES FILE
|
||||
while read RES FILE; do
|
||||
RES="${RES#0x}"
|
||||
echo "- ${DESTDIR}${RES} ==> ${DESTDIR}$FILE"
|
||||
mv -- "${DESTDIR}${RES}" "${DESTDIR}$FILE"
|
||||
done < "${RESPATH}${PACKAGECD}.3do.res"
|
||||
|
||||
while read RES FILE; do
|
||||
RES="${RES#0x}"
|
||||
echo "- ${DESTDIR}$FILE ==> ${DESTDIR}$RES"
|
||||
mv -- "${DESTDIR}$FILE" "${DESTDIR}$RES"
|
||||
done < "${RESPATH}${PACKAGECD}.pc.res"
|
||||
|
||||
while read RES FILE; do
|
||||
RES="${RES#0x}"
|
||||
DIR="${FILE%/*}"
|
||||
if [ "$DIR" != "$FILE" -a ! -d "${DESTDIR}${DIR}" ]; then
|
||||
mkdir -p -- "${DESTDIR}${DIR}"
|
||||
fi
|
||||
echo "- ${DESTDIR}${RES} ==> ${DESTDIR}${FILE}"
|
||||
mv -- "${DESTDIR}${RES}" "${DESTDIR}${FILE}"
|
||||
done < "${TEMPDIR}${PACKAGECD}.fil"
|
||||
|
||||
rm -- "${TEMPDIR}${PACKAGECD}.fil"
|
||||
echo
|
||||
}
|
||||
|
||||
unpackone starcon.pkg starcon.ndx "$CDPATH"
|
||||
|
||||
for PACKAGE in androsyn.shp arilou.shp blackurq.shp chenjesu.shp chmmr.shp \
|
||||
druuge.shp human.shp ilwrath.shp melnorme.shp mmrnmhrm.shp \
|
||||
mycon.shp orz.shp pkunk.shp shofixti.shp slylandr.shp spathi.shp \
|
||||
supox.shp syreen.shp thradd.shp umgah.shp urquan.shp utwig.shp \
|
||||
vux.shp yehat.shp zoqfot.shp \
|
||||
probe.sc2 lastbat.sc2 sis.dat \
|
||||
arilou.con blackur.con chmmr.con comandr.con druuge.con \
|
||||
ilwrath.con melnorm.con mycon.con orz.con pkunk.con shofixt.con \
|
||||
slyhome.con slyland.con spathi.con supox.con syreen.con \
|
||||
talkpet.con thradd.con umgah.con urquan.con utwig.con vux.con \
|
||||
yehat.con zoqfot.con; do
|
||||
unpackone "$PACKAGE" "$PACKAGE" "$DESTDIR"
|
||||
|
||||
# Remove the packed files which came from starcon.pkg once
|
||||
# we unpacked them
|
||||
rm -- "${DESTDIR}${PACKAGE}"
|
||||
done
|
||||
|
||||
rmdir "$TEMPDIR"
|
||||
|
||||
Reference in New Issue
Block a user