From 6840c37e6a4a523c3de3387e464d65e3ce4270e7 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Wed, 19 Sep 2012 11:55:28 +0200 Subject: [PATCH] add a VERY rough script to pack a demo file into a self running executable --- misc/tools/demopacker.sh | 86 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100755 misc/tools/demopacker.sh diff --git a/misc/tools/demopacker.sh b/misc/tools/demopacker.sh new file mode 100755 index 00000000..d49c4003 --- /dev/null +++ b/misc/tools/demopacker.sh @@ -0,0 +1,86 @@ +#!/bin/sh + +xonotic=$1; shift +strip=$1; shift +demo=$1; shift +# rest: command line options to use + +demobase=${demo##*/} + +cp "$demo" data/"$demobase" + +strace -qo strace.txt -f -e trace=open ./all run -nohome -readonly -forceqmenu -window -demo "$demobase" + +allfiles() +{ + "output/$1" +} + +rm -rf output + +while [ -n "$allfiles" ]; do + l=$allfiles + allfiles= + for f in $l; do + [ -f "$f" ] || continue + fn=${f#*/*/} + case "$f" in + */csprogs.dat) + # spam, skip it + ;; + */unifont-*.ttf) + # spam, skip it + ;; + *.mapinfo) + <"$f" include_as "$fn" + + # also include the map pk3 content + n=${f##*/} + n=${n%.*} + rm -rf data/temp-$n + mkdir data/temp-$n + ( + cd data/temp-$n + unzip ../../data/"$n"-*.pk3 + ) + allfiles=$allfiles" `find data/temp-$n -type f`" + ;; + *) + <"$f" include_as "$fn" + ;; + esac + done +done + +export do_jpeg=true +export dp_jpeg_if_not_dds=false +export jpeg_qual_rgb=80 +export jpeg_qual_a=95 +export do_dds=false +export do_ogg=true +export ogg_ogg=true +export ogg_qual=1 +export del_src=true +export git_src_repo= +cd output +find . -type f -print0 | xargs -0 ../misc/tools/cached-converter.sh +cd .. +mv data/"$demobase" output/ +echo "-xonotic -nohome -readonly -forceqmenu +bind ESC quit -demo $demobase" > output/darkplaces.opt +rm output.pk3 +( cd output && zip -9r ../output.pk3 . ) +cp "$xonotic" output.exe +$strip --strip-unneeded output.exe +cat output.pk3 >> output.exe -- 2.39.2