This commit is contained in:
Bob Mottram 2018-02-22 12:11:01 +00:00
commit 24a1da36df
47 changed files with 1 additions and 446 deletions

View File

@ -39,6 +39,7 @@ install:
mv ${DESTDIR}${PREFIX}/bin/${APP}-app-* ${DESTDIR}/usr/share/${APP}/apps
mv ${DESTDIR}${PREFIX}/bin/${APP}-utils-* ${DESTDIR}/usr/share/${APP}/utils
mkdir -m 755 -p ${DESTDIR}${PREFIX}/share/man/man1
rm ${DESTDIR}${PREFIX}/share/man/man1/${APP}*.1.gz
cp man/*.1.gz ${DESTDIR}${PREFIX}/share/man/man1
cp man/${APP}-backup-local.1.gz ${DESTDIR}${PREFIX}/share/man/man1/backup.1.gz
cp man/${APP}-restore-local.1.gz ${DESTDIR}${PREFIX}/share/man/man1/restore.1.gz

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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 <bob@freedombone.net>
#
# 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 <http://www.gnu.org/licenses/>.
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

View File

@ -1,71 +0,0 @@
#!/bin/bash
#
# .---. . .
# | | |
# |--- .--. .-. .-. .-.| .-. .--.--. |.-. .-. .--. .-.
# | | (.-' (.-' ( | ( )| | | | )( )| | (.-'
# ' ' --' --' -' - -' ' ' -' -' -' ' - --'
#
# Freedom in the Cloud
#
# Changes the password for an XMPP user
# License
# =======
#
# Copyright (C) 2015-2018 Bob Mottram <bob@freedombone.net>
#
# 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 <http://www.gnu.org/licenses/>.
PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-xmpp-pass
export TEXTDOMAINDIR="/usr/share/locale"
EMAIL_ADDRESS=
function show_help {
echo ''
echo $"${PROJECT_NAME}-xmpp-pass -e [email address]"
echo ''
exit 0
}
while [[ $# > 1 ]]
do
key="$1"
case $key in
-h|--help)
show_help
;;
-e|--email)
shift
EMAIL_ADDRESS="$1"
;;
*)
# unknown option
;;
esac
shift
done
if [ ! $EMAIL_ADDRESS ]; then
show_help
fi
prosodyctl passwd $EMAIL_ADDRESS
exit 0