~midori/midori/trunk

« back to all changes in this revision

Viewing changes to tools/midori-dev

  • Committer: Christian Dywan
  • Author(s): David Mohr
  • Date: 2010-04-10 16:43:53 UTC
  • Revision ID: git-v1:8c9461c1ea2c71ced72442d269cf4d718ef24518
Provide script 'midori-dev' for building from git

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /bin/bash
 
2
 
 
3
# Copyright (C) 2010 David Mohr <david@mcbf.net>
 
4
#
 
5
# This library is free software; you can redistribute it and/or
 
6
# modify it under the terms of the GNU Lesser General Public
 
7
# License as published by the Free Software Foundation; either
 
8
# version 2.1 of the License, or (at your option) any later version.
 
9
#
 
10
# See the file COPYING for the full license text.
 
11
#
 
12
# midori-dev: Run, update or debug Midori from git.
 
13
 
 
14
# Adjust this to where you have your git sources
 
15
DEVDIR=~/src/xfce/midori/git
 
16
 
 
17
# Location of stdout and stderr from running midori
 
18
LOG=~/.midori.out
 
19
 
 
20
#-----------------------------------------------------------------------------
 
21
 
 
22
BIN=_build_/default/midori/midori
 
23
BASENAME=`basename $0`
 
24
 
 
25
ulimit -c unlimited
 
26
 
 
27
cd $DEVDIR
 
28
 
 
29
CMD=`echo $BASENAME | sed 's/^midori-//'`
 
30
if [ -z $CMD ]; then
 
31
  echo "I'm confused, basename $BASENAME is not in the midori-<FOO> format"
 
32
  exit 1
 
33
fi
 
34
 
 
35
if [ $CMD == "dev" ]; then
 
36
  # No command was given through a symlink,
 
37
  # so check the first parameter instead
 
38
  CMD=$1
 
39
  shift
 
40
fi
 
41
 
 
42
case $CMD in
 
43
  git)
 
44
    exec ./waf build --run "$@" >& $LOG
 
45
    ;;
 
46
  gdb)
 
47
    gdb $BIN core
 
48
    ;;
 
49
  save)
 
50
    NAME=`date '+%Y%m%d-%H%M%S'`
 
51
    DESC="$1"
 
52
    CAT="$2"
 
53
    if [ -z "$1" ]; then
 
54
      echo "It is recommended to save a description of the cause of the crash"
 
55
      echo "Enter one line now, or press <ENTER> to continue"
 
56
      read DESC
 
57
    fi
 
58
    CRASH=crash/$NAME
 
59
 
 
60
    echo "Saving crash info..."
 
61
    mkdir -p $CRASH
 
62
    echo $DESC > $CRASH/description
 
63
    echo "    (gdb will take some time)"
 
64
    gdb $BIN core --batch -ex 'thread apply all bt' >& $CRASH/backtrace
 
65
    echo "    Backtrace is in $DEVDIR/$CRASH/backtrace."
 
66
    cp $BIN $CRASH
 
67
    cp core $CRASH
 
68
    cp $LOG $CRASH/output
 
69
 
 
70
    if [ -n "$CAT" ]; then
 
71
      cat $CRASH/backtrace
 
72
    fi
 
73
    ;;
 
74
  pull)
 
75
    git pull
 
76
    ;;
 
77
  *)
 
78
    cat << EOM
 
79
Usage: Create a symlink midori-<CMD>, or run 'midori-dev <CMD>'
 
80
where CMD can be
 
81
  git:  run the current git version
 
82
  gdb:  open the last core dump in gdb
 
83
  save: saves relevant information about the last crash
 
84
        so that it can be analyzed later
 
85
  pull: pulls the latest updates from the repository
 
86
EOM
 
87
esac