Kaynağa Gözat

Script to easily discover and connect to mesh peers

Bob Mottram 9 yıl önce
ebeveyn
işleme
99af758a29

+ 6
- 0
Makefile Dosyayı Görüntüle

@@ -31,6 +31,8 @@ install:
31 31
 	install -m 755 src/${APP}-addxmpp ${DESTDIR}${PREFIX}/bin
32 32
 	install -m 755 src/${APP}-rmxmpp ${DESTDIR}${PREFIX}/bin
33 33
 	install -m 755 src/${APP}-xmpp-pass ${DESTDIR}${PREFIX}/bin
34
+	install -m 755 src/${APP}-mesh ${DESTDIR}${PREFIX}/bin
35
+	install -m 755 src/${APP}-mesh ${DESTDIR}${PREFIX}/bin/mesh
34 36
 	mkdir -m 755 -p ${DESTDIR}${PREFIX}/share/man/man1
35 37
 	install -m 644 man/${APP}.1.gz ${DESTDIR}${PREFIX}/share/man/man1
36 38
 	install -m 644 man/${APP}-keydrive.1.gz ${DESTDIR}${PREFIX}/share/man/man1
@@ -53,6 +55,7 @@ install:
53 55
 	install -m 644 man/${APP}-addxmpp.1.gz ${DESTDIR}${PREFIX}/share/man/man1
54 56
 	install -m 644 man/${APP}-rmxmpp.1.gz ${DESTDIR}${PREFIX}/share/man/man1
55 57
 	install -m 644 man/${APP}-xmpp-pass.1.gz ${DESTDIR}${PREFIX}/share/man/man1
58
+	install -m 644 man/${APP}-mesh.1.gz ${DESTDIR}${PREFIX}/share/man/man1
56 59
 uninstall:
57 60
 	rm -f ${PREFIX}/share/man/man1/${APP}.1.gz
58 61
 	rm -f ${PREFIX}/share/man/man1/${APP}-keydrive.1.gz
@@ -75,6 +78,7 @@ uninstall:
75 78
 	rm -f ${PREFIX}/share/man/man1/${APP}-addxmpp.1.gz
76 79
 	rm -f ${PREFIX}/share/man/man1/${APP}-rmxmpp.1.gz
77 80
 	rm -f ${PREFIX}/share/man/man1/${APP}-xmpp-pass.1.gz
81
+	rm -f ${PREFIX}/share/man/man1/${APP}-mesh.1.gz
78 82
 	rm -rf ${PREFIX}/share/${APP}
79 83
 	rm -f ${PREFIX}/bin/${APP}
80 84
 	rm -f ${PREFIX}/bin/${APP}-keydrive
@@ -96,6 +100,8 @@ uninstall:
96 100
 	rm -f ${PREFIX}/bin/${APP}-addxmpp
97 101
 	rm -f ${PREFIX}/bin/${APP}-rmxmpp
98 102
 	rm -f ${PREFIX}/bin/${APP}-xmpp-pass
103
+	rm -f ${PREFIX}/bin/${APP}-mesh
104
+	rm -f ${PREFIX}/bin/mesh
99 105
 clean:
100 106
 	rm -f \#* \.#* debian/*.substvars debian/*.log
101 107
 	rm -fr deb.* debian/${APP}

+ 1
- 0
debian/source/include-binaries Dosyayı Görüntüle

@@ -19,3 +19,4 @@ man/freedombone-unignore.1.gz
19 19
 man/freedombone-addxmpp.1.gz
20 20
 man/freedombone-rmxmpp.1.gz
21 21
 man/freedombone-xmpp-pass.1.gz
22
+man/freedombone-mesh.1.gz

BIN
man/freedombone-mesh.1.gz Dosyayı Görüntüle


+ 1
- 1
src/freedombone Dosyayı Görüntüle

@@ -8232,7 +8232,7 @@ function install_tox_node {
8232 8232
 }
8233 8233
 
8234 8234
 function install_tox_client {
8235
-  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
8235
+  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" ]]; then
8236 8236
       return
8237 8237
   fi
8238 8238
   if grep -Fxq "install_tox_client" $COMPLETION_FILE; then

+ 84
- 0
src/freedombone-mesh Dosyayı Görüntüle

@@ -0,0 +1,84 @@
1
+#!/bin/bash
2
+#
3
+# .---.                  .              .
4
+# |                      |              |
5
+# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
+# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
+# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
+#
9
+#                    Freedom in the Cloud
10
+#
11
+# A script to easily locate mesh peers and start communicating
12
+
13
+# License
14
+# =======
15
+#
16
+# Copyright (C) 2015 Bob Mottram <bob@robotics.uk.to>
17
+#
18
+# This program is free software: you can redistribute it and/or modify
19
+# it under the terms of the GNU General Public License as published by
20
+# the Free Software Foundation, either version 3 of the License, or
21
+# (at your option) any later version.
22
+#
23
+# This program is distributed in the hope that it will be useful,
24
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
25
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26
+# GNU General Public License for more details.
27
+#
28
+# You should have received a copy of the GNU General Public License
29
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
30
+
31
+IRC_PORT=6697
32
+PEERS_FILE=/tmp/meshpeers.txt
33
+avahi-browse -at | awk -F ' ' '{print $4}' > $PEERS_FILE
34
+
35
+if [ ! -f $PEERS_FILE ]; then
36
+   echo 'No peers were found'
37
+   exit 0
38
+fi
39
+
40
+ctr=0
41
+while IFS='' read -r line || [[ -n "$line" ]]; do
42
+    ctr=$((ctr + 1))
43
+done < "$PEERS_FILE"
44
+
45
+if [ ${ctr} -lt "2" ]; then
46
+   echo 'No peers were found'
47
+   exit 0
48
+fi
49
+
50
+echo 'Choose a peer to connect to:'
51
+idx=1
52
+while IFS='' read -r line || [[ -n "$line" ]]; do
53
+    echo "    $idx. $line"
54
+    idx=$((idx + 1))
55
+done < "$PEERS_FILE"
56
+
57
+peer_index=0
58
+read peer_index
59
+
60
+# get the avahi domain name
61
+AVAHI_DOMAIN=
62
+idx=1
63
+while IFS='' read -r line || [[ -n "$line" ]]; do
64
+    if [ ${idx} -eq "$peer_index" ]; then
65
+        AVAHI_DOMAIN=${line}.local
66
+    fi
67
+    idx=$((idx + 1))
68
+done < "$PEERS_FILE"
69
+
70
+if [ ! $AVAHI_DOMAIN ]; then
71
+    echo 'No domain name'
72
+    exit 2
73
+fi
74
+
75
+# Connect to IRC
76
+if [ ! -f /usr/bin/irssi ]; then
77
+    if [ ! -f /usr/local/bin/irssi ]; then
78
+        echo 'You need irssi installed on your system'
79
+        exit 3
80
+    fi
81
+fi
82
+irssi -c $AVAHI_DOMAIN -p $IRC_PORT -n $USER
83
+
84
+exit 0