123 lines
3.1 KiB
Bash
123 lines
3.1 KiB
Bash
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
# Firefox launcher containing a Profile migration helper for
|
|
# temporary profiles used during alpha and beta phases.
|
|
|
|
# Authors:
|
|
# Alexander Sack <asac@jwsdot.com>
|
|
# Fabien Tassin <fta@sofaraway.org>
|
|
# Steve Langasek <steve.langasek@canonical.com>
|
|
# Chris Coulson <chris.coulson@canonical.com>
|
|
# License: GPLv2 or later
|
|
|
|
MOZ_LIBDIR=/@MOZ_LIBDIR@
|
|
MOZ_APP_LAUNCHER=`which $0`
|
|
MOZ_APP_NAME=@MOZ_APP_NAME@
|
|
|
|
export MOZ_APP_LAUNCHER
|
|
|
|
# Enable native Wayland support (https://launchpad.net/bugs/1916469)
|
|
# only in Wayland sessions (https://launchpad.net/bugs/1923116)
|
|
if [ "$XDG_SESSION_TYPE" = "wayland" ] ; then
|
|
export MOZ_ENABLE_WAYLAND=1
|
|
fi
|
|
|
|
while [ ! -x $MOZ_LIBDIR/$MOZ_APP_NAME ] ; do
|
|
if [ -L "$MOZ_APP_LAUNCHER" ] ; then
|
|
MOZ_APP_LAUNCHER=`readlink -f $MOZ_APP_LAUNCHER`
|
|
MOZ_LIBDIR=`dirname $MOZ_APP_LAUNCHER`
|
|
else
|
|
echo "Can't find $MOZ_LIBDIR/$MOZ_APP_NAME"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
usage () {
|
|
$MOZ_LIBDIR/$MOZ_APP_NAME -h | sed -e 's,/.*/,,'
|
|
echo
|
|
echo " -g or --debug Start within debugger"
|
|
echo " -d or --debugger Specify debugger to start with (eg, gdb or valgrind)"
|
|
echo " -a or --debugger-args Specify arguments for debugger"
|
|
}
|
|
|
|
moz_debug=0
|
|
moz_debugger_args=""
|
|
moz_debugger="gdb"
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
-h | --help )
|
|
usage
|
|
exit 0
|
|
;;
|
|
-g | --debug )
|
|
moz_debug=1
|
|
shift
|
|
;;
|
|
-d | --debugger)
|
|
moz_debugger=$2;
|
|
if [ "${moz_debugger}" != "" ]; then
|
|
shift 2
|
|
else
|
|
echo "-d requires an argument"
|
|
exit 1
|
|
fi
|
|
;;
|
|
-a | --debugger-args )
|
|
moz_debugger_args=$2;
|
|
if [ "${moz_debugger_args}" != "" ] ; then
|
|
shift 2
|
|
else
|
|
echo "-a requires an argument"
|
|
exit 1
|
|
fi
|
|
;;
|
|
-- ) # Stop option processing
|
|
shift
|
|
break
|
|
;;
|
|
* )
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ $moz_debug -eq 1 ] ; then
|
|
case $moz_debugger in
|
|
memcheck)
|
|
debugger="valgrind"
|
|
;;
|
|
*)
|
|
debugger=$moz_debugger
|
|
;;
|
|
esac
|
|
|
|
debugger=`which $debugger`
|
|
if [ ! -x $debugger ] ; then
|
|
echo "Invalid debugger"
|
|
exit 1
|
|
fi
|
|
|
|
case `basename $moz_debugger` in
|
|
gdb)
|
|
exec $debugger $moz_debugger_args --args $MOZ_LIBDIR/$MOZ_APP_NAME "$@"
|
|
;;
|
|
memcheck)
|
|
%%ifdef MOZ_VALGRIND
|
|
export G_SLICE=always-malloc
|
|
export G_DEBUG=gc-friendly
|
|
exec $debugger -v --tool=memcheck --leak-check=full --smc-check=all-non-file $moz_debugger_args $MOZ_LIBDIR/$MOZ_APP_NAME "$@"
|
|
%%else
|
|
echo "$MOZ_APP_NAME has not been compiled with valgrind support"
|
|
exit 1
|
|
%%endif
|
|
;;
|
|
*)
|
|
exec $debugger $moz_debugger_args $MOZ_LIBDIR/$MOZ_APP_NAME "$@"
|
|
;;
|
|
esac
|
|
else
|
|
exec $MOZ_LIBDIR/$MOZ_APP_NAME "$@"
|
|
fi
|