midori/tools/midori-dev

87 lines
2.1 KiB
Bash
Executable file

#! /bin/bash
# Copyright (C) 2010 David Mohr <david@mcbf.net>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# See the file COPYING for the full license text.
#
# midori-dev: Run, update or debug Midori from git.
# Adjust this to where you have your git sources
DEVDIR=~/src/xfce/midori/git
# Location of stdout and stderr from running midori
LOG=~/.midori.out
#-----------------------------------------------------------------------------
BIN=_build_/default/midori/midori
BASENAME=`basename $0`
ulimit -c unlimited
cd $DEVDIR
CMD=`echo $BASENAME | sed 's/^midori-//'`
if [ -z $CMD ]; then
echo "I'm confused, basename $BASENAME is not in the midori-<FOO> format"
exit 1
fi
if [ $CMD == "dev" ]; then
# No command was given through a symlink,
# so check the first parameter instead
CMD=$1
shift
fi
case $CMD in
git)
exec ./waf build --run "$@" >& $LOG
;;
gdb)
gdb $BIN core
;;
save)
NAME=`date '+%Y%m%d-%H%M%S'`
DESC="$1"
CAT="$2"
if [ -z "$1" ]; then
echo "It is recommended to save a description of the cause of the crash"
echo "Enter one line now, or press <ENTER> to continue"
read DESC
fi
CRASH=crash/$NAME
echo "Saving crash info..."
mkdir -p $CRASH
echo $DESC > $CRASH/description
echo " (gdb will take some time)"
gdb $BIN core --batch -ex 'thread apply all bt' >& $CRASH/backtrace
echo " Backtrace is in $DEVDIR/$CRASH/backtrace."
cp $BIN $CRASH
cp core $CRASH
cp $LOG $CRASH/output
if [ -n "$CAT" ]; then
cat $CRASH/backtrace
fi
;;
pull)
git pull
;;
*)
cat << EOM
Usage: Create a symlink midori-<CMD>, or run 'midori-dev <CMD>'
where CMD can be
git: run the current git version
gdb: open the last core dump in gdb
save: saves relevant information about the last crash
so that it can be analyzed later
pull: pulls the latest updates from the repository
EOM
esac