From e0fbc044b388dae06c843c256bf919b82ded9db1 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 4 Sep 2016 10:55:24 +0100 Subject: [PATCH] ipfs tweaks --- src/freedombone-image-mesh | 33 +++++++++++++++++++++++++++++++++ src/zeronetavahi | 7 ++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/freedombone-image-mesh b/src/freedombone-image-mesh index 89e364d4..839e4028 100755 --- a/src/freedombone-image-mesh +++ b/src/freedombone-image-mesh @@ -78,6 +78,32 @@ TOX_USERS_FILE=$ZERONET_INSTALL/${PROJECT_NAME}-tox-users.html # whether to enable zeronet ENABLE_ZERONET= +function create_avahi_service { + service_name=$1 + service_type=$2 + service_protocol=$3 + service_port=$4 + service_description="$5" + + if [ ! -d /etc/avahi ]; then + echo $'create_avahi_service: avahi was not installed' + exit 52925 + fi + + echo '' > /etc/avahi/services/${service_name}.service + echo '' >> /etc/avahi/services/${service_name}.service + echo '' >> /etc/avahi/services/${service_name}.service + echo " %h ${service_type}" >> /etc/avahi/services/${service_name}.service + echo ' ' >> /etc/avahi/services/${service_name}.service + echo " _${service_type}._${service_protocol}" >> /etc/avahi/services/${service_name}.service + echo " ${service_port}" >> /etc/avahi/services/${service_name}.service + if [ "$service_description" ]; then + echo " $service_description" >> /tmp/zeronet-blog.service + fi + echo ' ' >> /etc/avahi/services/${service_name}.service + echo '' >> /etc/avahi/services/${service_name}.service +} + function create_ram_disk { ramdisk_size_mb=$1 if [ ! -d /mnt/ramdisk ]; then @@ -737,6 +763,10 @@ function setup_ipfs { rm -f /home/$MY_USERNAME/.ipfs-id fi + if [ -f /home/$MY_USERNAME/.ipfs-users ]; then + rm -f /home/$MY_USERNAME/.ipfs-users + fi + su -c "$IPFS_COMMAND init -b $IPFS_KEY_LENGTH" - $MY_USERNAME if [ ! -d /home/$MY_USERNAME/.ipfs ]; then echo "IPFS could not be initialised for user $MY_USERNAME" >> $INSTALL_LOG @@ -757,6 +787,9 @@ function setup_ipfs { return fi + TOX_ID=$(su -c 'toxid' - $MY_USERNAME) + create_avahi_service ipfs "ipfs" udp $IPFS_PORT "$IPFS_PEER_ID:$TOX_ID" + echo 'IPFS installed with ID $IPFS_PEER_ID' >> $INSTALL_LOG } diff --git a/src/zeronetavahi b/src/zeronetavahi index 2b36194b..3d829ddd 100755 --- a/src/zeronetavahi +++ b/src/zeronetavahi @@ -54,6 +54,7 @@ ZERONET_CONFIG=$ZERONET_INSTALL/bootstrap IPFS_PORT=4001 IPFS_PATH=/usr/bin IPFS_COMMAND=$IPFS_PATH/ipfs +IPFS_USERS_FILE=/home/$MY_USERNAME/.ipfs-users MY_BLOG_STR=$"My Blog" MY_MAIL_STR=$"My Mail" @@ -89,11 +90,15 @@ function ipfs_bootstrap { state=0 address="" peer="" + echo -n '' > $IPFS_USERS_FILE while IFS='' read -r line || [[ -n "$line" ]]; do if [ ${state} -eq "3" ]; then if [[ $line == *"txt ="* ]]; then - ipfs_peer_id=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}' | awk -F '"' '{print $2}') + ipfs_txt=$(echo "$line" | awk -F '[' '{print $2}' | awk -F ']' '{print $1}' | awk -F '"' '{print $2}') + ipfs_peer_id=$(echo "$ipfs_txt" | awk -F ':' '{print $1}') + ipfs_tox_id=$(echo "$ipfs_txt" | awk -F ':' '{print $2}') $IPFS_COMMAND bootstrap add /ip4/${address}/tcp/${IPFS_PORT}/ipfs/${ipfs_peer_id} + echo "$ipfs_tox_id $ipfs_peer_id" >> $IPFS_USERS_FILE state=0 fi fi