Bob Mottram 9 anni fa
parent
commit
e0fbc044b3
2 ha cambiato i file con 39 aggiunte e 1 eliminazioni
  1. 33
    0
      src/freedombone-image-mesh
  2. 6
    1
      src/zeronetavahi

+ 33
- 0
src/freedombone-image-mesh Vedi File

@@ -78,6 +78,32 @@ TOX_USERS_FILE=$ZERONET_INSTALL/${PROJECT_NAME}-tox-users.html
78 78
 # whether to enable zeronet
79 79
 ENABLE_ZERONET=
80 80
 
81
+function create_avahi_service {
82
+    service_name=$1
83
+    service_type=$2
84
+    service_protocol=$3
85
+    service_port=$4
86
+    service_description="$5"
87
+
88
+    if [ ! -d /etc/avahi ]; then
89
+        echo $'create_avahi_service: avahi was not installed'
90
+        exit 52925
91
+    fi
92
+
93
+    echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /etc/avahi/services/${service_name}.service
94
+    echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /etc/avahi/services/${service_name}.service
95
+    echo '<service-group>' >> /etc/avahi/services/${service_name}.service
96
+    echo "  <name replace-wildcards=\"yes\">%h ${service_type}</name>" >> /etc/avahi/services/${service_name}.service
97
+    echo '  <service>' >> /etc/avahi/services/${service_name}.service
98
+    echo "    <type>_${service_type}._${service_protocol}</type>" >> /etc/avahi/services/${service_name}.service
99
+    echo "    <port>${service_port}</port>" >> /etc/avahi/services/${service_name}.service
100
+    if [ "$service_description" ]; then
101
+        echo "    <txt-record>$service_description</txt-record>" >> /tmp/zeronet-blog.service
102
+    fi
103
+    echo '  </service>' >> /etc/avahi/services/${service_name}.service
104
+    echo '</service-group>' >> /etc/avahi/services/${service_name}.service
105
+}
106
+
81 107
 function create_ram_disk {
82 108
     ramdisk_size_mb=$1
83 109
     if [ ! -d /mnt/ramdisk ]; then
@@ -737,6 +763,10 @@ function setup_ipfs {
737 763
         rm -f /home/$MY_USERNAME/.ipfs-id
738 764
     fi
739 765
 
766
+    if [ -f /home/$MY_USERNAME/.ipfs-users ]; then
767
+        rm -f /home/$MY_USERNAME/.ipfs-users
768
+    fi
769
+
740 770
     su -c "$IPFS_COMMAND init -b $IPFS_KEY_LENGTH" - $MY_USERNAME
741 771
     if [ ! -d /home/$MY_USERNAME/.ipfs ]; then
742 772
         echo "IPFS could not be initialised for user $MY_USERNAME" >> $INSTALL_LOG
@@ -757,6 +787,9 @@ function setup_ipfs {
757 787
         return
758 788
     fi
759 789
 
790
+    TOX_ID=$(su -c 'toxid' - $MY_USERNAME)
791
+    create_avahi_service ipfs "ipfs" udp $IPFS_PORT "$IPFS_PEER_ID:$TOX_ID"
792
+
760 793
     echo 'IPFS installed with ID $IPFS_PEER_ID' >> $INSTALL_LOG
761 794
 }
762 795
 

+ 6
- 1
src/zeronetavahi Vedi File

@@ -54,6 +54,7 @@ ZERONET_CONFIG=$ZERONET_INSTALL/bootstrap
54 54
 IPFS_PORT=4001
55 55
 IPFS_PATH=/usr/bin
56 56
 IPFS_COMMAND=$IPFS_PATH/ipfs
57
+IPFS_USERS_FILE=/home/$MY_USERNAME/.ipfs-users
57 58
 
58 59
 MY_BLOG_STR=$"My Blog"
59 60
 MY_MAIL_STR=$"My Mail"
@@ -89,11 +90,15 @@ function ipfs_bootstrap {
89 90
     state=0
90 91
     address=""
91 92
     peer=""
93
+    echo -n '' > $IPFS_USERS_FILE
92 94
     while IFS='' read -r line || [[ -n "$line" ]]; do
93 95
         if [ ${state} -eq "3" ]; then
94 96
             if [[ $line == *"txt ="* ]]; then
95
-                ipfs_peer_id=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}' | awk -F '"' '{print $2}')
97
+                ipfs_txt=$(echo "$line" | awk -F '[' '{print $2}' | awk -F ']' '{print $1}' | awk -F '"' '{print $2}')
98
+                ipfs_peer_id=$(echo "$ipfs_txt" | awk -F ':' '{print $1}')
99
+                ipfs_tox_id=$(echo "$ipfs_txt" | awk -F ':' '{print $2}')
96 100
                 $IPFS_COMMAND bootstrap add /ip4/${address}/tcp/${IPFS_PORT}/ipfs/${ipfs_peer_id}
101
+                echo "$ipfs_tox_id $ipfs_peer_id" >> $IPFS_USERS_FILE
97 102
                 state=0
98 103
             fi
99 104
         fi