mirror of
https://gitdl.cn/https://github.com/chakralinux/desktop.git
synced 2025-01-24 10:32:13 +08:00
144 lines
4.2 KiB
Bash
144 lines
4.2 KiB
Bash
#!/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 $@
|