diff --git a/man/freedombone-mesh.1.gz b/man/freedombone-mesh.1.gz deleted file mode 100644 index f029839e..00000000 Binary files a/man/freedombone-mesh.1.gz and /dev/null differ diff --git a/src/freedombone-mesh b/src/freedombone-mesh deleted file mode 100755 index 9709649f..00000000 --- a/src/freedombone-mesh +++ /dev/null @@ -1,375 +0,0 @@ -#!/bin/bash -# -# .---. . . -# | | | -# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-. -# | | (.-' (.-' ( | ( )| | | | )( )| | (.-' -# ' ' --' --' -' - -' ' ' -' -' -' ' - --' -# -# Freedom in the Cloud -# -# A script to easily locate mesh peers and start communicating - -# License -# ======= -# -# Copyright (C) 2015-2018 Bob Mottram -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero 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 Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -PROJECT_NAME='freedombone' - -export TEXTDOMAIN=${PROJECT_NAME}-mesh -export TEXTDOMAINDIR="/usr/share/locale" - -CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg - -MUMBLE_PATH=/usr/bin/mumble -TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}') -DHTNODES=/usr/share/toxic/DHTnodes - -PEERS_FILE=/tmp/meshpeers.txt - -TOX_PORT=33445 -TOXCORE_REPO='https://github.com/irungentoo/toxcore' -TOXCORE_COMMIT= -# obtain tox values from main install -if grep -q "TOX_PORT=" $CONFIG_FILE; then - TOX_PORT=$(cat $CONFIG_FILE | grep "TOX_PORT=" | nead -n 1 | awk -F '=' '{print $2}') -fi -if grep -q "TOXCORE_REPO=" $CONFIG_FILE; then - TOXCORE_REPO=$(cat $CONFIG_FILE | grep "TOXCORE_REPO=" | head -n 1 | awk -F '"' '{print $2}') -fi -if grep -q "TOXCORE_COMMIT=" $CONFIG_FILE; then - TOXCORE_COMMIT=$(cat $CONFIG_FILE | grep "TOXCORE_COMMIT=" | head -n 1 | awk -F "'" '{print $2}') -fi -TOXID_REPO='https://github.com/bashrc/toxid' -TOX_BOOTSTRAP_ID_FILE=/var/lib/tox-bootstrapd/pubkey.txt -QTOX_INI="/home/$USER/.config/tox/qtox.ini" - -# client or server installations sounds odd for a mesh, but this -# indicates whether this is a dedicated mesh peer ("yes") or -# a 'client' such as a laptop or desktop machine with -# the freedombone-client script installed -SERVER_INSTALLATION="no" - -function install_toxcore { - if [ -f /etc/tox-bootstrapd.conf ]; then - return - fi - - sudo apt-get -yq install build-essential libtool autotools-dev - sudo apt-get -yq install automake checkinstall check git yasm - sudo apt-get -yq install libsodium18 libsodium-dev libcap2-bin - sudo apt-get -yq install libconfig9 libconfig-dev - - if [ ! -d ~/develop ]; then - mkdir ~/develop - fi - cd ~/develop - git clone $TOXCORE_REPO ~/develop/toxcore - cd ~/develop/toxcore - if [ $TOXCORE_COMMIT ]; then - git checkout $TOXCORE_COMMIT -b $TOXCORE_COMMIT - fi - autoreconf -i - ./configure --enable-daemon - if [ ! "$?" = "0" ]; then - exit 78467 - fi - make - if [ ! "$?" = "0" ]; then - exit 84562 - fi - sudo make install - sudo cp /usr/local/lib/libtoxcore* /usr/lib/ - - if [ ! -f /usr/local/bin/tox-bootstrapd ]; then - echo $"File not found /usr/local/bin/tox-bootstrapd" - exit 73862 - fi - - sudo useradd --home-dir /var/lib/tox-bootstrapd --create-home --system --shell /sbin/nologin --comment "Account to run Tox's DHT bootstrap daemon" --user-group tox-bootstrapd - sudo chmod 700 /var/lib/tox-bootstrapd - if [ ! -f ~/develop/toxcore/other/bootstrap_daemon/tox-bootstrapd.conf ]; then - echo $"File not found $INSTALL_DIR/toxcore/other/bootstrap_daemon/tox-bootstrapd.conf" - exit 476835 - fi - - # create configuration file - echo "port = $TOX_PORT" > /tmp/tox-bootstrapd.conf - echo 'keys_file_path = "/var/lib/tox-bootstrapd/keys"' >> /tmp/tox-bootstrapd.conf - echo 'pid_file_path = "/var/run/tox-bootstrapd/tox-bootstrapd.pid"' >> /tmp/tox-bootstrapd.conf - echo 'enable_ipv6 = true' >> /tmp/tox-bootstrapd.conf - echo 'enable_ipv4_fallback = true' >> /tmp/tox-bootstrapd.conf - echo 'enable_lan_discovery = true' >> /tmp/tox-bootstrapd.conf - echo 'enable_tcp_relay = true' >> /tmp/tox-bootstrapd.conf - echo "tcp_relay_ports = [443, 3389, $TOX_PORT]" >> /tmp/tox-bootstrapd.conf - echo 'enable_motd = true' >> /tmp/tox-bootstrapd.conf - echo 'motd = "tox-bootstrapd"' >> /tmp/tox-bootstrapd.conf - sudo cp /tmp/tox-bootstrapd.conf /etc/tox-bootstrapd.conf - rm /tmp/tox-bootstrapd.conf - - if [ ! -f ~/develop/toxcore/other/bootstrap_daemon/tox-bootstrapd.service ]; then - echo $"File not found ~/develop/toxcore/other/bootstrap_daemon/tox-bootstrapd.service" - exit 7359 - fi - sudo cp ~/develop/toxcore/other/bootstrap_daemon/tox-bootstrapd.service /etc/systemd/system/ - - sudo systemctl daemon-reload - sudo systemctl enable tox-bootstrapd.service - sudo systemctl start tox-bootstrapd.service - if [ ! "$?" = "0" ]; then - sudo systemctl status tox-bootstrapd.service - exit 5846 - fi - - sudo systemctl restart tox-bootstrapd.service - - TOX_PUBLIC_KEY=$(cat /var/log/syslog | grep tox | grep "Public Key" | awk -F ' ' '{print $8}' | tail -1) - if [ ${#TOX_PUBLIC_KEY} -lt 30 ]; then - echo $'Could not obtain the tox node public key' - exit 6529 - fi - - # save the public key for later reference - echo "$TOX_PUBLIC_KEY" > /tmp/boostrapid - sudo mv /tmp/boostrapid $TOX_BOOTSTRAP_ID_FILE -} - -function install_toxid { - if [ -f /usr/local/bin/toxid ]; then - return - fi - cd ~/develop - git clone $TOXID_REPO ~/develop/toxid - cd ~/develop/toxid - make - sudo make install - - if [ ! -f /usr/local/bin/toxid ]; then - echo $"Couldn't install toxid" - exit 6389 - fi -} - -function run_tox { - echo $QTOX_INI - if [[ -f $TOXIC_FILE || -f $QTOX_INI ]]; then - if [[ $SERVER_INSTALLATION == "no" ]]; then - # update bootstrap nodes - if [ -f $DHTNODES ]; then - if [ ! -f $DHTNODES.internet ]; then - sudo cp $DHTNODES $DHTNODES.internet - fi - fi - lstox -f dht > /tmp/dht - sudo cp /tmp/dht $DHTNODES - fi - - # get a list of peers - PEER_TOX_ID_LIST=$(lstox | grep $AVAHI_DOMAIN | sort -u) - if [ ! "$PEER_TOX_ID_LIST" ]; then - echo $'No peers found' - exit 0 - fi - PEER_TOX_ID_LIST_COUNT=$(echo "$PEER_TOX_ID_LIST" | wc -l) - PEER_TOX_ID='' - if [ $PEER_TOX_ID_LIST_COUNT -lt "2" ]; then - # single peer - PEER_TOX_ID=$(echo "$PEER_TOX_ID_LIST" | awk -F ' ' '{print $3}') - else - # choose a user from a list - echo '' - echo $"Select a user on $AVAHI_DOMAIN:" - ctr=0 - while IFS='' read -r line || [[ -n "$line" ]]; do - toxusername=$(echo $line | awk -F ' ' '{print $2}') - echo " $ctr. $toxusername" - ctr=$((ctr + 1)) - done < "$PEER_TOX_ID_LIST" - read user_index - PEER_TOX_ID=$(echo "$PEER_TOX_ID_LIST" | tail -n+${user_index} | head -n1 | awk -F ' ' '{print $3}') - fi - - # if this is a valid ID - if [ ${#PEER_TOX_ID} -gt 30 ]; then - # start client and make a friend request - if [ -f $QTOX_INI ]; then - echo $'Launch qTox' - qtox & - else - - echo "n -/nick $USER -/add $PEER_TOX_ID -/exit -" | $TOXIC_FILE -d - # Running twice is a hack to get around buggyness in the client - $TOXIC_FILE -d - fi - exit 0 - else - # ID was invalid - echo $PEER_TOX_ID - echo $"Tox ID for $AVAHI_DOMAIN was not found" - exit 6 - fi - fi -} - -if [ -f /var/lib/batman ]; then - SERVER_INSTALLATION="yes" -fi - -if [[ $SERVER_INSTALLATION == "no" ]]; then - if [ ! -f /usr/bin/batman ]; then - ${PROJECT_NAME}-client - fi -fi - -# alternative toxic paths -if [ -f /usr/local/bin/toxic ]; then - TOXIC_FILE=/usr/local/bin/toxic -fi -if [ -f /usr/local/share/toxic/DHTnodes ]; then - DHTNODES=/usr/local/share/toxic/DHTnodes -fi - -if [[ $SERVER_INSTALLATION == "no" ]]; then - if [ ! -f /tmp/meshtype ]; then - install_toxcore - install_toxid - sudo batman start - if [ ! "$?" = "0" ]; then - exit 2 - fi - fi -fi - -avahi-browse -atl | awk -F ' ' '{print $4}' | sort -u > $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 "1" ]; then - echo $'No peers were found' - exit 0 -fi - -clear -echo '' -echo ".---. . . " -echo "| | | " -echo "|--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-. " -echo "| | (.-' (.-' ( | ( )| | | | )( )| | (.-' " -echo "' ' --' --' -' - -' ' ' -' -' -' ' - --'" -echo $' Freedom in the Mesh' -echo '' -echo $'Please 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 - -# if no selection made -if [ ! $peer_index ]; then - echo $'Nothing was selected' - echo '' - exit 0 -fi - -# 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 3 -fi - -# if only mumble is installed -if [ ! -f $TOXIC_FILE ]; then - if [ -f $MUMBLE_PATH ]; then - $MUMBLE_PATH & - exit 0 - fi - echo $'You need mumble/toxic/qTox installed on your system' - if [[ $SERVER_INSTALLATION == "no" ]]; then - sudo batman stop - fi - exit 4 -fi - -# if only tox is installed -if [ ! -f $MUMBLE_PATH ]; then - run_tox -fi - -echo '' -echo $'Choose communication service:' -echo $' 1. Voice' -echo $' 2. Tox Chat' -echo '' - -read peer_index - -# if no selection made -if [ ! $peer_index ]; then - echo $'Nothing was selected' - echo '' - exit 0 -fi - -if [[ $peer_index == 1 ]]; then - if [ -f $MUMBLE_PATH ]; then - echo '' - echo $'To setup for the first time click "Add New", then set:' - echo $" Label: $AVAHI_DOMAIN" - echo $" Address: $AVAHI_DOMAIN" - echo $' Port: 64738' - echo $" Username: $USER" - echo '' - echo $'Press Enter to continue.' - echo '' - read peer_index - $MUMBLE_PATH & - else - echo $'Mumble may not be installed on this system' - exit 5 - fi -fi - -if [[ $peer_index == 2 ]]; then - run_tox -fi - -exit 0