53225497e79e54b7494b52e3550bcbe7329345ce
[project/luci.git] / contrib / package / freifunk-mapupdate / files / usr / sbin / ff_mapupdate.sh
1 #!/bin/sh
2
3 if [ ! "$(uci -q get freifunk-mapupdate.mapupdate.enabled)" == 1 ]; then
4         exit 1
5 fi
6
7 MAPSERVER="$(uci -q get freifunk-mapupdate.mapupdate.mapserver)"
8 [ -z "$MAPSERVER" ] && logger -t "freifunk-mapupdate:" "No mapserver configured" && exit 1
9
10 #check if nameservice plugin is installed and enabled, else exit
11 nslib=`uci show olsrd |grep olsrd_nameservice.so |awk {' FS="."; print $1"."$2 '}`
12 if [ -n "$nslib" ]; then
13                 LATLONFILE="$(uci -q get $nslib.latlon_file)"
14                 if [ -z "$LATLONFILE" ]; then
15                         LATLONFILE="/var/run/latlon.js"
16                 fi
17                 if [ ! -p "$LATLONFILE" ]; then
18                         logger -t "freifunk-mapupdate:" "latlon_file not found."; exit 1
19                 fi
20 else
21         logger -t "freifunk-mapupdate:" "nameservice plugin not found in olsrd config."
22         exit 1
23 fi
24
25 HOSTNAME="$(uci show system |grep hostname |cut -d "=" -f 2)"
26 HF_INFO=""
27
28 # Get info for myself
29 SELF=$(cat $LATLONFILE |grep ^Self | sed -e 's/Self(//' -e 's/);//' -e "s/'//g")
30 OLSR_IP="$(echo $SELF |awk '{ FS=",";print $1 }')"
31 LOCATION="$(uci show system |grep .location |cut -d "=" -f 2)"
32 [ -n "$LOCATION" ] && NOTE="$LOCATION<br>"
33 FFNOTE="$(uci -q get freifunk.contact.note)"
34 [ -n "$FFNOTE" ] && NOTE="$NOTE $FFNOTE"
35 NOTE="<h3><a href='http://$OLSR_IP' target='_blank'>$HOSTNAME</a></h3><p>$NOTE"
36 NOTE=`echo -e "$NOTE" | sed -e 's/\ /%20/g' -e 's/&/%26/g' -e 's/"/%22/g'`
37 UPDATESTRING="$(echo $SELF |awk '{ FS=",";print $2 }'), $(echo $SELF |awk '{ FS=",";print $3 }')"
38
39 # get neighbor Info (lat, lon, lq)
40 while read line; do
41         NEIGHUPD="$(echo $line |awk '{ FS=","; print $6 }'), $(echo $line |awk '{ FS=","; print $7 }'), $(echo $line |awk '{ FS=",";print $4 }')"
42         UPDATESTRING="${UPDATESTRING}, ${NEIGHUPD}"
43 done << EOF
44 `grep "PLink('$OLSR_IP" $LATLONFILE | sed -e 's/PLink(//' -e 's/);//' -e "s/'//g"`
45 EOF
46
47 # Send UPDATESTRING
48 UPDATE=`echo -e "$UPDATESTRING" | sed s/\ /%20/g`
49 result="$(wget "$MAPSERVER?update=$UPDATE&updateiv=3600&olsrip=$OLSR_IP&note=${NOTE}${HF_INFO}" -qO -)"
50
51 if [ ! "$result" == "success update" ]; then
52         logger -t "freifunk-mapupdate:" "Update failed: $result"
53 fi
54