Bob Mottram 9 年 前
コミット
e0fbc044b3
共有2 個のファイルを変更した39 個の追加1 個の削除を含む
  1. 33
    0
      src/freedombone-image-mesh
  2. 6
    1
      src/zeronetavahi

+ 33
- 0
src/freedombone-image-mesh ファイルの表示

78
 # whether to enable zeronet
78
 # whether to enable zeronet
79
 ENABLE_ZERONET=
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
 function create_ram_disk {
107
 function create_ram_disk {
82
     ramdisk_size_mb=$1
108
     ramdisk_size_mb=$1
83
     if [ ! -d /mnt/ramdisk ]; then
109
     if [ ! -d /mnt/ramdisk ]; then
737
         rm -f /home/$MY_USERNAME/.ipfs-id
763
         rm -f /home/$MY_USERNAME/.ipfs-id
738
     fi
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
     su -c "$IPFS_COMMAND init -b $IPFS_KEY_LENGTH" - $MY_USERNAME
770
     su -c "$IPFS_COMMAND init -b $IPFS_KEY_LENGTH" - $MY_USERNAME
741
     if [ ! -d /home/$MY_USERNAME/.ipfs ]; then
771
     if [ ! -d /home/$MY_USERNAME/.ipfs ]; then
742
         echo "IPFS could not be initialised for user $MY_USERNAME" >> $INSTALL_LOG
772
         echo "IPFS could not be initialised for user $MY_USERNAME" >> $INSTALL_LOG
757
         return
787
         return
758
     fi
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
     echo 'IPFS installed with ID $IPFS_PEER_ID' >> $INSTALL_LOG
793
     echo 'IPFS installed with ID $IPFS_PEER_ID' >> $INSTALL_LOG
761
 }
794
 }
762
 
795
 

+ 6
- 1
src/zeronetavahi ファイルの表示

54
 IPFS_PORT=4001
54
 IPFS_PORT=4001
55
 IPFS_PATH=/usr/bin
55
 IPFS_PATH=/usr/bin
56
 IPFS_COMMAND=$IPFS_PATH/ipfs
56
 IPFS_COMMAND=$IPFS_PATH/ipfs
57
+IPFS_USERS_FILE=/home/$MY_USERNAME/.ipfs-users
57
 
58
 
58
 MY_BLOG_STR=$"My Blog"
59
 MY_BLOG_STR=$"My Blog"
59
 MY_MAIL_STR=$"My Mail"
60
 MY_MAIL_STR=$"My Mail"
89
     state=0
90
     state=0
90
     address=""
91
     address=""
91
     peer=""
92
     peer=""
93
+    echo -n '' > $IPFS_USERS_FILE
92
     while IFS='' read -r line || [[ -n "$line" ]]; do
94
     while IFS='' read -r line || [[ -n "$line" ]]; do
93
         if [ ${state} -eq "3" ]; then
95
         if [ ${state} -eq "3" ]; then
94
             if [[ $line == *"txt ="* ]]; then
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
                 $IPFS_COMMAND bootstrap add /ip4/${address}/tcp/${IPFS_PORT}/ipfs/${ipfs_peer_id}
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
                 state=0
102
                 state=0
98
             fi
103
             fi
99
         fi
104
         fi