From 99af758a29be467281628b7fe65c146fe5f3bc64 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 22 Aug 2015 11:27:56 +0100 Subject: [PATCH] Script to easily discover and connect to mesh peers --- Makefile | 6 +++ debian/source/include-binaries | 1 + man/freedombone-mesh.1.gz | Bin 0 -> 688 bytes src/freedombone | 2 +- src/freedombone-mesh | 84 +++++++++++++++++++++++++++++++++ 5 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 man/freedombone-mesh.1.gz create mode 100755 src/freedombone-mesh diff --git a/Makefile b/Makefile index 9c0a9a68..d140a3fa 100644 --- a/Makefile +++ b/Makefile @@ -31,6 +31,8 @@ install: install -m 755 src/${APP}-addxmpp ${DESTDIR}${PREFIX}/bin install -m 755 src/${APP}-rmxmpp ${DESTDIR}${PREFIX}/bin install -m 755 src/${APP}-xmpp-pass ${DESTDIR}${PREFIX}/bin + install -m 755 src/${APP}-mesh ${DESTDIR}${PREFIX}/bin + install -m 755 src/${APP}-mesh ${DESTDIR}${PREFIX}/bin/mesh mkdir -m 755 -p ${DESTDIR}${PREFIX}/share/man/man1 install -m 644 man/${APP}.1.gz ${DESTDIR}${PREFIX}/share/man/man1 install -m 644 man/${APP}-keydrive.1.gz ${DESTDIR}${PREFIX}/share/man/man1 @@ -53,6 +55,7 @@ install: install -m 644 man/${APP}-addxmpp.1.gz ${DESTDIR}${PREFIX}/share/man/man1 install -m 644 man/${APP}-rmxmpp.1.gz ${DESTDIR}${PREFIX}/share/man/man1 install -m 644 man/${APP}-xmpp-pass.1.gz ${DESTDIR}${PREFIX}/share/man/man1 + install -m 644 man/${APP}-mesh.1.gz ${DESTDIR}${PREFIX}/share/man/man1 uninstall: rm -f ${PREFIX}/share/man/man1/${APP}.1.gz rm -f ${PREFIX}/share/man/man1/${APP}-keydrive.1.gz @@ -75,6 +78,7 @@ uninstall: rm -f ${PREFIX}/share/man/man1/${APP}-addxmpp.1.gz rm -f ${PREFIX}/share/man/man1/${APP}-rmxmpp.1.gz rm -f ${PREFIX}/share/man/man1/${APP}-xmpp-pass.1.gz + rm -f ${PREFIX}/share/man/man1/${APP}-mesh.1.gz rm -rf ${PREFIX}/share/${APP} rm -f ${PREFIX}/bin/${APP} rm -f ${PREFIX}/bin/${APP}-keydrive @@ -96,6 +100,8 @@ uninstall: rm -f ${PREFIX}/bin/${APP}-addxmpp rm -f ${PREFIX}/bin/${APP}-rmxmpp rm -f ${PREFIX}/bin/${APP}-xmpp-pass + rm -f ${PREFIX}/bin/${APP}-mesh + rm -f ${PREFIX}/bin/mesh clean: rm -f \#* \.#* debian/*.substvars debian/*.log rm -fr deb.* debian/${APP} diff --git a/debian/source/include-binaries b/debian/source/include-binaries index 9d02403e..80eb1e1d 100644 --- a/debian/source/include-binaries +++ b/debian/source/include-binaries @@ -19,3 +19,4 @@ man/freedombone-unignore.1.gz man/freedombone-addxmpp.1.gz man/freedombone-rmxmpp.1.gz man/freedombone-xmpp-pass.1.gz +man/freedombone-mesh.1.gz diff --git a/man/freedombone-mesh.1.gz b/man/freedombone-mesh.1.gz new file mode 100644 index 0000000000000000000000000000000000000000..1b89cefcc1fcadf06214d5e44ede21442475dd0d GIT binary patch literal 688 zcmV;h0#E%PiwFQmN7z*W1C3Mfi_<_5{l0(2kS{8j)T;<*5ivb$d)QvfrBx6?HrYwC zHoF^kH~sP7yPKwZcjNAvCTIxU{Hqnjz#$1BEtAqTMUK z?WjIalAHV6)%tdM7m#&{BpUZbl3J@BXJ{P7^Yob#qLDnKmdgUv4xe_6;HFf{po67i z?jsr45+!73*pcqIqqE94h&qY4cgZ@Q&*PKE+Z>Lnfs*dfR|CV8QwcTAwzR+#p-;#h z_`5N7L{?Oa6Lv%PquAY#k(^@$*(uv<;b^Ob~)LvGKwnCwz7L9dAJMml^ zOREaFjZRHW!xYfkh6P$^YUc7={0yB73T}aMTB!okhF2^^V^CU$wCO&aRet-WwY3=y z1`a8kG;$*zq|}r;8$9sQ)?^HxLV|Ab+_D?xCW)u+a!71jLw;q>NX1<%KP%9U?B><( z-5&&)qp>Jp&z*4NXX2NA+N)}B!cQW1pCeH1PoX*Q^*ls_6=oK^A(i`(Xp1`dxwVfs z(QbQM=3>D?)b%qxdN41f(tV|wk~uGWaILY=tWhZ2r_d;IA6_)2#br-gT(qRc zMMnm+9_ACnni}IG-D={^dbYd|$XKPYP}XWH;6tj?PgVK=X-1pojk=T}hx literal 0 HcmV?d00001 diff --git a/src/freedombone b/src/freedombone index 2e050835..62465673 100755 --- a/src/freedombone +++ b/src/freedombone @@ -8232,7 +8232,7 @@ function install_tox_node { } function install_tox_client { - 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 + 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 return fi if grep -Fxq "install_tox_client" $COMPLETION_FILE; then diff --git a/src/freedombone-mesh b/src/freedombone-mesh new file mode 100755 index 00000000..488db801 --- /dev/null +++ b/src/freedombone-mesh @@ -0,0 +1,84 @@ +#!/bin/bash +# +# .---. . . +# | | | +# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-. +# | | (.-' (.-' ( | ( )| | | | )( )| | (.-' +# ' ' --' --' -' - -' ' ' -' -' -' ' - --' +# +# Freedom in the Cloud +# +# A script to easily locate mesh peers and start communicating + +# License +# ======= +# +# Copyright (C) 2015 Bob Mottram +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +IRC_PORT=6697 +PEERS_FILE=/tmp/meshpeers.txt +avahi-browse -at | awk -F ' ' '{print $4}' > $PEERS_FILE + +if [ ! -f $PEERS_FILE ]; then + echo 'No peers were found' + exit 0 +fi + +ctr=0 +while IFS='' read -r line || [[ -n "$line" ]]; do + ctr=$((ctr + 1)) +done < "$PEERS_FILE" + +if [ ${ctr} -lt "2" ]; then + echo 'No peers were found' + exit 0 +fi + +echo 'Choose a peer to connect to:' +idx=1 +while IFS='' read -r line || [[ -n "$line" ]]; do + echo " $idx. $line" + idx=$((idx + 1)) +done < "$PEERS_FILE" + +peer_index=0 +read peer_index + +# get the avahi domain name +AVAHI_DOMAIN= +idx=1 +while IFS='' read -r line || [[ -n "$line" ]]; do + if [ ${idx} -eq "$peer_index" ]; then + AVAHI_DOMAIN=${line}.local + fi + idx=$((idx + 1)) +done < "$PEERS_FILE" + +if [ ! $AVAHI_DOMAIN ]; then + echo 'No domain name' + exit 2 +fi + +# Connect to IRC +if [ ! -f /usr/bin/irssi ]; then + if [ ! -f /usr/local/bin/irssi ]; then + echo 'You need irssi installed on your system' + exit 3 + fi +fi +irssi -c $AVAHI_DOMAIN -p $IRC_PORT -n $USER + +exit 0