quakeforge/tools/zpak

32 lines
678 B
Bash
Executable file

#! /bin/bash
# create pak files with gzipped internals
if [ $# -eq 0 ]; then
echo "usage: $0 <pakfile> ..."
exit 1
fi
tmpdir=/var/tmp/zpak.$$
for pakfile in $*; do
[ ! -f ${pakfile} ] && echo "${pakfile} not found" && continue
[ "${pakfile#/}" = "${pakfile}" ] && pakfile=${PWD}/${pakfile}
mkdir ${tmpdir}
cd ${tmpdir}
pak -vxf ${pakfile}
# cosmetic (gzip preserves timestamps.. could come in handy)
find * -type f \
-exec touch {} -r ${pakfile} \;
find * -type f \
! -name '*.gz' ! -name '*.jpg' ! -name '*.ogg' ! -name '*.png' \
-exec gzip -v9 {} \;
mv ${pakfile} ${pakfile}.bak
pak -vcf ${pakfile} $(find * -type f | sort)
cd -
rm -rf ${tmpdir}
done