summaryrefslogtreecommitdiff
path: root/community-staging/freeorion/freeorion.sh
diff options
context:
space:
mode:
Diffstat (limited to 'community-staging/freeorion/freeorion.sh')
-rw-r--r--community-staging/freeorion/freeorion.sh143
1 files changed, 143 insertions, 0 deletions
diff --git a/community-staging/freeorion/freeorion.sh b/community-staging/freeorion/freeorion.sh
new file mode 100644
index 000000000..d80623ab2
--- /dev/null
+++ b/community-staging/freeorion/freeorion.sh
@@ -0,0 +1,143 @@
+#!/bin/sh
+#
+# written by Markus Sinner, http://psitronic.de
+#
+# Nightly builds on.
+# http://freeorion.psitronic.de/download/nightly/
+#
+# This is a wrapper-script for starting FreeOrion on
+# ix86 (and maybe x64) Linux Systems.
+# This script will CD into application and set some
+# enviroment variables.
+
+# ---- commandline PARAMETERS and ENVIROMENT variables -----
+# This script supports parameters, that will be evaluated
+# BEFORE freeorion binary is called and will be removed,
+# because the binary won't support them.
+# Currently only one parameter at a time is supported!
+# Parameters other than these will be appended as command
+# line parameters to the call of the freeorion binary.
+#
+# --strace
+# This starts freeorion using the "strace" utility.
+# Generates a strace logifle /tmp/freeorion.trace.
+# Make sure it is installed on your system!
+# --gdb
+# Runs freeorion in a gdb instance, passes the original
+# parameters through the --args parameter of gdb
+#
+#
+# ENVIROMENT variables
+# This script supports some enviroment variables. To set them
+# either use the followin command BEFORE you execute this script.
+# export XXXX="value"
+# This permanently set the variable in you current shell script.
+# Or you prepend the options when running this script, like this:
+# PARAM1="hello" PARAM2="yo man" /usr/bin/freeorion.elf
+#
+# Supportet are:
+# FO_TRACE=
+# Use this to prepend something to calling freorion.
+# This variables also is used internally, when --gdb or --trace
+# appear on the command line.
+# FO_GDB_ARGS=
+# If you use --gbd, you should uses this env to add GDB parameters.
+# Make sure you end this list of parameters with --args, otherwise
+# gdb won't start. Example: FO_GDB_ARGS="-q -s fo.symbols --args"
+# LD_LIBRARY_PATH=
+# This is a well known env and will be honored by this script.
+#
+
+
+# ---------- STARTS HERE ---------------
+# Change into application directory
+# If this is a symlink, then we
+# need to change into the dir of symlink-target.
+if [ -h $0 ]; then
+ echo "I am Symlink. Following into my targets basedir"
+ ME=`readlink $0`
+else
+ echo "Following into my basedir"
+ ME=$0
+fi
+
+# This is important! Script won't work outside its installation dir
+ROOT=/usr/share/freeorion
+cd ${ROOT}
+echo -n "CWD: "
+pwd
+
+
+
+# Check for python. If freeorionca binary is missing it, use
+# the shipped version.
+if ldd /usr/bin/freeorionca | grep "libpython.*not found"; then
+ #echo "python2.5 missing. Using shipped version."
+ PYTHON_USE_SHIPPED=1
+else
+ #echo "python2.5 found. Using it."
+ PYTHON_USE_SHIPPED=0
+fi
+
+# Set Python library home for loading modules
+# If no python 2.5 is detected, use shipped python 2.5
+if [ "$PYTHON_USE_SHIPPED" = "1" ]; then
+ export PYTHONHOME=/usr/lib/freeorion/python2.5
+ export PYTHONPATH=${PYTHONHOME}
+ export PYTHONDEBUG=1
+ export PYTHONVERBOSE=1
+ echo "PYTHONHOME=${PYTHONHOME}"
+
+ export LD_LIBRARY_PATH=${PYTHONHOME}:${LD_LIBRARY_PATH}
+ export LD_PRELOAD=${PYTHONHOME}/libutil.so.1:${PYTHONHOME}/libpython2.5.so
+fi
+
+
+# Command line Parameter --gdb forces running in gdb
+# Setting FO_TRACE to gdb results in other settings, see
+# below
+if [ "$1" = "--gdb" ]; then
+ FO_TRACE="gdb"
+
+ # Don't forget to remove the param
+ shift
+fi
+
+if [ "$1" = "--strace" ]; then
+ TRACEFILE=/tmp/freeorion.trace
+ echo
+ echo "Tracing to ${TRACEFILE}"
+ echo
+ FO_TRACE="strace -f -o ${TRACEFILE}"
+
+ # Don't forget to remove the param
+ shift
+fi
+
+
+
+# Add a parameter FO_GDB_ARGS to support gdb
+# Or warn the user, if he changed FO_GDB_ARGS and has
+# forgotten to end it with --args
+if [ "$FO_TRACE" = "gdb" ]; then
+ if [ "$FO_GDB_ARGS" = "" ]; then
+ FO_GDB_ARGS="--args"
+ else
+ echo "****************************************************"
+ echo "** NOTE NOTE NOTE NOTE **"
+ echo "Running FO in gdb"
+ echo "If you use FO_GDB_ARGS on your command line, make"
+ echo "sure that you END this variabble with --args."
+ echo "Otherwise gdb will not start."
+ echo
+ echo "Type 'start' when the gdb instance has loaded!"
+ echo
+ fi
+fi
+
+
+# Support loading libs from application/lib
+export LD_LIBRARY_PATH=./lib:${LD_LIBRARY_PATH}
+
+# Call with settings-dir to avoid conflicting installations
+${FO_TRACE} ${FO_GDB_ARGS} /usr/bin/freeorion.elf --resource-dir ./default $@