mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-23 04:23:08 +00:00
30bc58b1f2
- Fix i7.sh to conform to new compiler flags. PR: 193540 Submitted by: maintainer
130 lines
3.7 KiB
Bash
130 lines
3.7 KiB
Bash
#!/bin/sh
|
|
# $FreeBSD$
|
|
|
|
#
|
|
# Copyright (c) 2010-2014 Andy Kosela <akosela@andykosela.com>
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions
|
|
# are met:
|
|
# 1. Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# 2. Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in
|
|
# the documentation and/or other materials provided with the
|
|
# distribution.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS''
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
|
# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR
|
|
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
|
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
inform=%%PREFIX%%/bin/inform6
|
|
ni=%%PREFIX%%/bin/ni
|
|
rules=%%DATADIR%%/Internal
|
|
|
|
main()
|
|
{
|
|
pkg=`basename $story | cut -d. -f1 2>/dev/null`
|
|
mkdir -p $pkg.inform/Build $pkg.inform/Source $pkg.inform/Index
|
|
cp $story $pkg.inform/Source/story.ni
|
|
$ni --release --internal $rules --format=$zsuf --project $pkg.inform
|
|
mv "$pkg.inform/Build/Debug log.txt" debug.log
|
|
if [ -s $pkg.inform/Build/auto.inf ]; then
|
|
echo ""
|
|
$inform $zopts $pkg.inform/Build/auto.inf -o $pkg.$zsuf
|
|
mv $pkg.inform/Build/Map.eps ${pkg}_map.eps 1>/dev/null 2>&1
|
|
fi
|
|
echo "Debug log: debug.log"
|
|
rm gameinfo.dbg 2>/dev/null
|
|
rm -rf $pkg.inform $pkg.materials 2>/dev/null
|
|
exit 0
|
|
}
|
|
|
|
replay()
|
|
{
|
|
if [ ! -z "`grep -e quit -e save $pkg.$$.key`" ]; then
|
|
sed -i '' '/^quit/d ; /^save/d' $pkg.$$.key
|
|
fi
|
|
if [ -z "`grep 'script off' $pkg.$$.key`" ]; then
|
|
echo "script off" >> $pkg.$$.key
|
|
fi
|
|
echo -e \
|
|
"0a\nscript\n$pkg.$$.scr\n.\n\$a\nsave\n$pkg.$$.sav\nquit\ny\ny\n.\nw" |
|
|
ed - $pkg.$$.key
|
|
|
|
if [ ! -z `echo $story | grep -e \.ulx -e \.gblorb -e \.blb` ]; then
|
|
cat $pkg.$$.key | dumb-glulxe $story 1>/dev/null 2>&1
|
|
cat $pkg.$$.scr | fold -s -72 > $pkg.$$.scr
|
|
else
|
|
cat $pkg.$$.key | frotz -QS 72 $story 1>/dev/null 2>&1
|
|
fi
|
|
|
|
echo -e \
|
|
"g/^script/d\ng/^quit/d\ng/^save/d\ng/.sav/d\ng/.scr/d\ng/^y$/d\nw" |
|
|
ed - $pkg.$$.key
|
|
echo "$pkg.$$.scr -- replay transcript file"
|
|
echo "$pkg.$$.sav -- replay save file"
|
|
echo "$pkg.$$.key -- replay walkthrough file"
|
|
exit 0
|
|
}
|
|
|
|
usage()
|
|
{
|
|
echo "Usage: i7 story.ni"
|
|
echo " i7 [-g] story.ni"
|
|
echo " i7 [-r] story.scr story"
|
|
echo " i7 [-w] story.key story"
|
|
echo ""
|
|
echo " -g : create Glulx release"
|
|
echo " -r : replay game from a transcript file"
|
|
echo " -w : replay game from a walkthrough file"
|
|
echo ""
|
|
echo "By default i7 creates Z-code v8 releases."
|
|
exit 0
|
|
}
|
|
|
|
# Start of script
|
|
|
|
if [ ! -z `echo $1 | grep '.ni\|.inf\|.txt'` ]; then
|
|
zsuf=z8
|
|
zopts=-kE2w~S~DC0xv8
|
|
story=$1
|
|
main
|
|
elif [ -z "$1" ]; then
|
|
usage
|
|
fi
|
|
|
|
while getopts g:r:w:h opts
|
|
do
|
|
case $opts in
|
|
g) story=$OPTARG
|
|
zsuf=ulx
|
|
zopts=-kE2w~S~DC0xG
|
|
main
|
|
;;
|
|
h) usage
|
|
;;
|
|
r) story=$3
|
|
pkg=`basename $OPTARG | cut -d. -f1 2>/dev/null`
|
|
grep '>' $OPTARG | cut -d'>' -f2 > $pkg.$$.key
|
|
replay
|
|
;;
|
|
w) story=$3
|
|
pkg=`basename $OPTARG | cut -d. -f1 2>/dev/null`
|
|
cp $OPTARG $pkg.$$.key
|
|
replay
|
|
;;
|
|
*) usage
|
|
;;
|
|
esac
|
|
done
|