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 00000000..1b89cefc Binary files /dev/null and b/man/freedombone-mesh.1.gz differ 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