[mdlug] I need a script Hero
Jeff Hanson
jhansonxi at gmail.com
Tue Jan 30 19:11:23 EST 2007
In particular, I need someone to help me figure out what is wrong with
this setup script for Heroes 3 by Loki Software. I keep getting an
error with Ubuntu Edgy:
sh setup.sh
setup.sh: 9: function: not found
x86
I'm not that good with scripts but it looks like it is trying to come
up with a path to a specific setup executable and a command line of
some sort. The script works on Fedora 6 but launches a text
installer, probably because of SE Linux and permissions when launched
from a terminal window. It launches the graphical installer on my
laptop with Ubuntu Dapper. On all three systems "uname -m" returns
i686. I tried running the executables directly but I get an error:
Syntax error: "(" expected
Here is the script:
#!/bin/sh
#
# Product setup script - Loki Entertainment Software
# Go to the proper setup directory (if not already there)
cd `dirname $0`
# Return the appropriate architecture string
function DetectARCH {
status=1
case `uname -m` in
i?86) echo "x86"
status=0;;
*) echo "`uname -m`"
status=0;;
esac
return $status
}
# Return the appropriate version string
function DetectLIBC {
status=1
if [ -f `echo /lib/libc.so.6* | tail -1` ]; then
if fgrep GLIBC_2.1 /lib/libc.so.6* 2>&1 >/dev/null; then
echo "glibc-2.1"
status=0
else
echo "glibc-2.0"
status=0
fi
elif [ -f /lib/libc.so.5 ]; then
echo "libc5"
status=0
else
echo "unknown"
fi
return $status
}
# Detect the Linux environment
arch=`DetectARCH`
libc=`DetectLIBC`
# Find the installation program
function try_run
{
setup=$1
shift
fatal=$1
if [ "$1" != "" ]; then
shift
fi
# First find the binary we want to run
failed=0
setup_bin="setup.data/bin/$arch/$libc/$setup"
if [ ! -f "$setup_bin" ]; then
setup_bin="setup.data/bin/$arch/$setup"
if [ ! -f "$setup_bin" ]; then
failed=1
fi
fi
if [ "$failed" -eq 1 ]; then
if [ "$fatal" != "" ]; then
cat <<__EOF__
This installation doesn't support $libc on $arch
Please contact Loki Technical Support at support at lokigames.com
__EOF__
exit 1
fi
return $failed
fi
# Try to run the binary
# The executable is here but we can't execute it from CD
setup="$HOME/.setup$$"
cp "$setup_bin" "$setup"
chmod 700 "$setup"
if [ "$fatal" != "" ]; then
"$setup" $*
failed=$?
else
"$setup" $* 2>/dev/null
failed=$?
fi
rm -f "$setup"
return $failed
}
# Try to run the setup program
status=0
rm -f "$setup"
if ! try_run setup.gtk && ! try_run setup -fatal; then
echo "The setup program seems to have failed on $arch/$libc"
echo
echo "Please contact Loki Technical Support at support at lokigames.com"
status=1
fi
exit $status
More information about the mdlug
mailing list