1 |
zoff99 |
2 |
#!/bin/sh
|
2 |
|
|
|
3 |
|
|
# This script is part of navit, a navigation system.
|
4 |
|
|
# It can be used to make sure that navit is only started
|
5 |
|
|
# once. If navit is already running it will be brought to
|
6 |
|
|
# the front.
|
7 |
|
|
|
8 |
|
|
# Set this to a place where a pidfile should be stored.
|
9 |
|
|
# Make sure you have write access...
|
10 |
|
|
PIDFILE="/var/run/navit/navit.pid"
|
11 |
|
|
|
12 |
|
|
# Set this to navit's executable.
|
13 |
|
|
NAVIT="./navit"
|
14 |
|
|
|
15 |
|
|
# Optional: Set this to an alternative configuration file
|
16 |
|
|
#CONFIG="./navit.xml"
|
17 |
|
|
|
18 |
|
|
############################################################
|
19 |
|
|
### You should not need to edit anything below this line ###
|
20 |
|
|
############################################################
|
21 |
|
|
|
22 |
|
|
function check_wmctrl()
|
23 |
|
|
{
|
24 |
|
|
which wmctrl > /dev/null
|
25 |
|
|
|
26 |
|
|
if [ $? -ne 0 ] ; then
|
27 |
|
|
echo "I need the 'wmctrl' program. Exit."
|
28 |
|
|
exit 1
|
29 |
|
|
fi
|
30 |
|
|
}
|
31 |
|
|
|
32 |
|
|
function start_navit()
|
33 |
|
|
{
|
34 |
|
|
if [ "x" != "x$CONFIG" ] ; then
|
35 |
|
|
$NAVIT -c $CONFIG &
|
36 |
|
|
else
|
37 |
|
|
$NAVIT &
|
38 |
|
|
fi
|
39 |
|
|
|
40 |
|
|
pid=$!
|
41 |
|
|
|
42 |
|
|
echo -n "$pid" > $PIDFILE
|
43 |
|
|
|
44 |
|
|
if [ $? -eq 0 ] ; then
|
45 |
|
|
echo "Started navit with PID $pid."
|
46 |
|
|
else
|
47 |
|
|
kill $pid
|
48 |
|
|
echo "Could not create pidfile!"
|
49 |
|
|
exit 1
|
50 |
|
|
fi
|
51 |
|
|
|
52 |
|
|
# Waiting for navit to close...
|
53 |
|
|
wait $pid
|
54 |
|
|
|
55 |
|
|
rm $PIDFILE
|
56 |
|
|
}
|
57 |
|
|
|
58 |
|
|
function check_navit()
|
59 |
|
|
{
|
60 |
|
|
if [ -f $PIDFILE ] ; then
|
61 |
|
|
pid=`cat $PIDFILE`
|
62 |
|
|
kill -0 $pid 2>/dev/null
|
63 |
|
|
if [ $? -eq 0 ] ; then
|
64 |
|
|
echo "Bringing Navit to front"
|
65 |
|
|
|
66 |
|
|
winid=`wmctrl -l -p | grep -e "^[^:blank:]*[:blank:]*[^:blank:]*[:blank:]*$pid[:blank:]*" | sed 's/ .*//'`
|
67 |
|
|
wmctrl -i -R $winid
|
68 |
|
|
|
69 |
|
|
exit 0
|
70 |
|
|
fi
|
71 |
|
|
fi
|
72 |
|
|
}
|
73 |
|
|
|
74 |
|
|
|
75 |
|
|
### Start of the main script ###
|
76 |
|
|
|
77 |
|
|
check_wmctrl
|
78 |
|
|
|
79 |
|
|
check_navit
|
80 |
|
|
|
81 |
|
|
start_navit
|