]> spindle.queued.net Git - midori/commitdiff
Provide script 'midori-dev' for building from git
authorDavid Mohr <david@mcbf.net>
Sat, 10 Apr 2010 16:41:59 +0000 (18:41 +0200)
committerChristian Dywan <christian@twotoasts.de>
Sat, 10 Apr 2010 16:43:53 +0000 (18:43 +0200)
tools/midori-dev [new file with mode: 0755]

diff --git a/tools/midori-dev b/tools/midori-dev
new file mode 100755 (executable)
index 0000000..2b6ce7d
--- /dev/null
@@ -0,0 +1,87 @@
+#! /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