Browse Source

zeronet service description

Bob Mottram 8 years ago
parent
commit
e32fe64fe0
3 changed files with 308 additions and 301 deletions
  1. 7
    7
      src/freedombone-app-zeronet
  2. 2
    2
      src/freedombone-utils-avahi
  3. 299
    292
      src/zeronetavahi

+ 7
- 7
src/freedombone-app-zeronet View File

@@ -38,7 +38,7 @@ ZERONET_MAIL_REPO="https://github.com/HelloZeroNet/ZeroMail"
38 38
 ZERONET_MAIL_COMMIT='955af09d643c72b02e4983d71eca5c0c93a6c131'
39 39
 ZERONET_FORUM_REPO="https://github.com/HelloZeroNet/ZeroTalk"
40 40
 ZERONET_FORUM_COMMIT='e2d2c9cb1cfbfef91b244935efb5c14c2ad95faa'
41
-ZERONET_URL=http://127.0.0.1:43110
41
+ZERONET_URL='http://127.0.0.1:43110'
42 42
 ZERONET_PORT=15441
43 43
 TRACKER_PORT=6969
44 44
 ZERONET_DEFAULT_BLOG_TAGLINE="Blogging on the Mesh"
@@ -229,14 +229,14 @@ function install_zeronet_blog {
229 229
 
230 230
 	# Add an avahi service
231 231
 	function_check create_avahi_service
232
-	create_avahi_service zeronet-blog "zeronet-blog" udp $ZERONET_PORT "$ZERONET_URL/$ZERONET_BLOG_ADDRESS"
232
+	create_avahi_service zeronet-blog "zeronet-blog" udp $ZERONET_PORT "${ZERONET_URL}/${ZERONET_BLOG_ADDRESS}"
233 233
 	cp /tmp/zeronet-blog.service /etc/avahi/services/zeronet-blog.service
234 234
 
235 235
 	if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
236 236
 		mkdir -p /home/$MY_USERNAME/.config/zeronet
237 237
 		chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
238 238
 	fi
239
-	echo "$ZERONET_URL/$ZERONET_BLOG_ADDRESS" > /home/$MY_USERNAME/.config/zeronet/myblog
239
+	echo "${ZERONET_URL}/${ZERONET_BLOG_ADDRESS}" > /home/$MY_USERNAME/.config/zeronet/myblog
240 240
 
241 241
 	if ! grep -q "ZeroNet Blog address" /home/$MY_USERNAME/README; then
242 242
 		echo '' >> /home/$MY_USERNAME/README
@@ -328,14 +328,14 @@ function install_zeronet_mail {
328 328
 
329 329
 	# Add an avahi service
330 330
 	function_check create_avahi_service
331
-	create_avahi_service zeronet-mail "zeronet-mail" udp $ZERONET_PORT "$ZERONET_URL/$ZERONET_MAIL_ADDRESS"
331
+	create_avahi_service zeronet-mail "zeronet-mail" udp $ZERONET_PORT "${ZERONET_URL}/${ZERONET_MAIL_ADDRESS}"
332 332
 	cp /tmp/zeronet-mail.service /etc/avahi/services/zeronet-mail.service
333 333
 
334 334
 	if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
335 335
 		mkdir -p /home/$MY_USERNAME/.config/zeronet
336 336
 		chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
337 337
 	fi
338
-	echo "$ZERONET_URL/$ZERONET_MAIL_ADDRESS" > /home/$MY_USERNAME/.config/zeronet/mymail
338
+	echo "${ZERONET_URL}/${ZERONET_MAIL_ADDRESS}" > /home/$MY_USERNAME/.config/zeronet/mymail
339 339
 
340 340
 	if ! grep -q $"ZeroNet Mail address" /home/$MY_USERNAME/README; then
341 341
 		echo '' >> /home/$MY_USERNAME/README
@@ -421,14 +421,14 @@ function install_zeronet_forum {
421 421
 
422 422
 	# Add an avahi service
423 423
 	function_check create_avahi_service
424
-	create_avahi_service zeronet-forum "zeronet-forum" udp $ZERONET_PORT "$ZERONET_URL/$ZERONET_FORUM_ADDRESS"
424
+	create_avahi_service zeronet-forum "zeronet-forum" udp $ZERONET_PORT "${ZERONET_URL}/${ZERONET_FORUM_ADDRESS}"
425 425
 	sudo cp /tmp/zeronet-forum.service /etc/avahi/services/zeronet-forum.service
426 426
 
427 427
 	if [ ! -d /home/$MY_USERNAME/.config/zeronet ]; then
428 428
 		mkdir -p /home/$MY_USERNAME/.config/zeronet
429 429
 		chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
430 430
 	fi
431
-	echo "$ZERONET_URL/$ZERONET_FORUM_ADDRESS" > /home/$MY_USERNAME/.config/zeronet/myforum
431
+	echo "${ZERONET_URL}/${ZERONET_FORUM_ADDRESS}" > /home/$MY_USERNAME/.config/zeronet/myforum
432 432
 
433 433
 	if ! grep -q $"ZeroNet Forum address" /home/$MY_USERNAME/README; then
434 434
 		echo '' >> /home/$MY_USERNAME/README

+ 2
- 2
src/freedombone-utils-avahi View File

@@ -36,7 +36,7 @@ function create_avahi_service {
36 36
 	service_description="$5"
37 37
 
38 38
 	if [ ! -d /etc/avahi ]; then
39
-	    echo $'create_avahi_service: avahi was not installed'
39
+		echo $'create_avahi_service: avahi was not installed'
40 40
 		exit 52925
41 41
 	fi
42 42
 
@@ -48,7 +48,7 @@ function create_avahi_service {
48 48
 	echo "    <type>_${service_type}._${service_protocol}</type>" >> /etc/avahi/services/${service_name}.service
49 49
 	echo "    <port>${service_port}</port>" >> /etc/avahi/services/${service_name}.service
50 50
 	if [ "$service_description" ]; then
51
-		echo "    <txt-record>$description</txt-record>" >> /tmp/zeronet-blog.service
51
+		echo "    <txt-record>$service_description</txt-record>" >> /tmp/zeronet-blog.service
52 52
 	fi
53 53
 	echo '  </service>' >> /etc/avahi/services/${service_name}.service
54 54
 	echo '</service-group>' >> /etc/avahi/services/${service_name}.service

+ 299
- 292
src/zeronetavahi View File

@@ -44,11 +44,11 @@ ZERONET_USER_HOME=/home/zeronet
44 44
 MY_USERNAME=$USER
45 45
 
46 46
 if [ ! -d $ZERONET_INSTALL ]; then
47
-    if [ -d /home/$MY_USERNAME/zeronet ]; then
48
-        ZERONET_INSTALL=/home/$MY_USERNAME/zeronet
49
-    else
50
-        exit 0
51
-    fi
47
+	if [ -d /home/$MY_USERNAME/zeronet ]; then
48
+		ZERONET_INSTALL=/home/$MY_USERNAME/zeronet
49
+	else
50
+		exit 0
51
+	fi
52 52
 fi
53 53
 
54 54
 BLOGS_FILE=$ZERONET_INSTALL/${PROJECT_NAME}-blogs
@@ -71,285 +71,315 @@ ZERONET_MAIL_STR=$"ZeroNet Mail"
71 71
 ZERONET_FORUM_STR=$"ZeroNet Forum"
72 72
 NO_USERS_STR=$"No users found"
73 73
 
74
+# contains the output of the avahi command
75
+TEMPFILE_BASE=/tmp/tmpzeronetavahibase.txt
76
+TEMPFILE=/tmp/tmpzeronetavahi.txt
77
+
78
+function ipfs_bootstrap {
79
+	cat $TEMPFILE_BASE | grep "IPFS\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
80
+
81
+	state=0
82
+	address=""
83
+	peer=""
84
+	while IFS='' read -r line || [[ -n "$line" ]]; do
85
+		if [ ${state} -eq "3" ]; then
86
+			if [[ $line == *"txt ="* ]]; then
87
+				ipfs_peer_id=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}' | awk -F '"' '{print $2}')
88
+				ipfs bootstrap add /ip4/${address}/tcp/${IPFS_PORT}/ipfs/${ipfs_peer_id}
89
+				state=0
90
+			fi
91
+		fi
92
+		if [ ${state} -eq "2" ]; then
93
+			if [[ $line == *"address ="* ]]; then
94
+				address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
95
+				state=3
96
+			fi
97
+		fi
98
+		if [ ${state} -eq "1" ]; then
99
+			if [[ $line == *"hostname ="* ]]; then
100
+				peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
101
+				state=2
102
+			fi
103
+		fi
104
+		if [[ $line == *"IPFS"* && $line == "= "* ]]; then
105
+			state=1
106
+		fi
107
+	done < "$TEMPFILE"
108
+}
109
+
110
+function detect_tox_users {
111
+	lstox > $TEMPFILE
112
+	toxctr=0
113
+	echo '<ol type="square">' >> $TOX_USERS_FILE.new
114
+	while IFS='' read -r line || [[ -n "$line" ]]; do
115
+		if [[ $line != "Failed*" ]]; then
116
+			echo "  <li>$line</li>" >> $TOX_USERS_FILE.new
117
+			toxctr=$((toxctr + 1))
118
+		fi
119
+	done < "$TEMPFILE"
120
+	if [ $toxctr -eq "0" ]; then
121
+		echo "  <li>${NO_USERS_STR}</li>" >> $TOX_USERS_FILE.new
122
+	fi
123
+	echo '<ol>' >> $TOX_USERS_FILE.new
124
+}
125
+
126
+function assemble_web_page {
127
+	f="$1"
128
+	fhome="$2"
129
+	cat "${f}-header.html" "${f}.new" "${f}-footer.html" > "${f}.html"
130
+	rm -f "${f}.new"
131
+	if [ -d "${fhome}" ]; then
132
+		sudo chown zeronet:zeronet "$f"
133
+	fi
134
+}
135
+
74 136
 function create_index {
75
-    if [ -f $ZERONET_INDEX ]; then
76
-        sed -i "s|.*${MY_BLOG_STR}.*|  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/myblog)\">${MY_BLOG_STR}</a></li>|g" $ZERONET_INDEX
77
-        sed -i "s|.*${MY_MAIL_STR}.*|  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/mymail)\">${MY_MAIL_STR}</a></li>|g" $ZERONET_INDEX
78
-        sed -i "s|.*${MY_FORUM_STR}.*|  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/myforum)\">${MY_FORUM_STR}</a></li>|g" $ZERONET_INDEX
79
-        return
80
-    fi
81
-    echo '<!DOCTYPE html>' > $ZERONET_INDEX
82
-    echo '<html>' >> $ZERONET_INDEX
83
-    echo '<head>' >> $ZERONET_INDEX
84
-    echo "<title>$WEB_PAGE_TITLE</title>" >> $ZERONET_INDEX
85
-    echo '</head>' >> $ZERONET_INDEX
86
-    echo '<body>' >> $ZERONET_INDEX
87
-    echo "<H1>$WEB_PAGE_TITLE</H1>" >> $ZERONET_INDEX
88
-    echo '' >> $ZERONET_INDEX
89
-    echo "<H2>Your Sites</H2>" >> $ZERONET_INDEX
90
-    echo '' >> $ZERONET_INDEX
91
-    echo '<ol type="square">' >> $ZERONET_INDEX
92
-    echo "  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/myblog)\">${MY_BLOG_STR}</a></li>" >> $ZERONET_INDEX
93
-    echo "  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/mymail)\">${MY_MAIL_STR}</a></li>" >> $ZERONET_INDEX
94
-    echo "  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/myforum)\">${MY_FORUM_STR}</a></li>" >> $ZERONET_INDEX
137
+	if [ -f $ZERONET_INDEX ]; then
138
+		sed -i "s|.*${MY_BLOG_STR}.*|  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/myblog)\">${MY_BLOG_STR}</a></li>|g" $ZERONET_INDEX
139
+		sed -i "s|.*${MY_MAIL_STR}.*|  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/mymail)\">${MY_MAIL_STR}</a></li>|g" $ZERONET_INDEX
140
+		sed -i "s|.*${MY_FORUM_STR}.*|  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/myforum)\">${MY_FORUM_STR}</a></li>|g" $ZERONET_INDEX
141
+		return
142
+	fi
143
+	echo '<!DOCTYPE html>' > $ZERONET_INDEX
144
+	echo '<html>' >> $ZERONET_INDEX
145
+	echo '<head>' >> $ZERONET_INDEX
146
+	echo "<title>$WEB_PAGE_TITLE</title>" >> $ZERONET_INDEX
147
+	echo '</head>' >> $ZERONET_INDEX
148
+	echo '<body>' >> $ZERONET_INDEX
149
+	echo "<H1>$WEB_PAGE_TITLE</H1>" >> $ZERONET_INDEX
150
+	echo '' >> $ZERONET_INDEX
151
+	echo "<H2>Your Sites</H2>" >> $ZERONET_INDEX
152
+	echo '' >> $ZERONET_INDEX
153
+	echo '<ol type="square">' >> $ZERONET_INDEX
154
+	echo "  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/myblog)\">${MY_BLOG_STR}</a></li>" >> $ZERONET_INDEX
155
+	echo "  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/mymail)\">${MY_MAIL_STR}</a></li>" >> $ZERONET_INDEX
156
+	echo "  <li><a href=\"$(cat /home/$MY_USERNAME/.config/zeronet/myforum)\">${MY_FORUM_STR}</a></li>" >> $ZERONET_INDEX
95 157
 #    echo "  <li><a href=\"http://localhost:5001/webui\">File Share</a></li>" >> $ZERONET_INDEX
96
-    echo '</ol>' >> $ZERONET_INDEX
97
-    echo '' >> $ZERONET_INDEX
98
-    echo "<H2>On the Mesh</H2>" >> $ZERONET_INDEX
99
-    echo '' >> $ZERONET_INDEX
100
-    echo '<ol type="square">' >> $ZERONET_INDEX
101
-    echo "  <li><a href=\"${BLOGS_FILE}.html\">${BLOGS_STR}</a></li>" >> $ZERONET_INDEX
102
-    echo "  <li><a href=\"${MAIL_FILE}.html\">${MAIL_STR}</a></li>" >> $ZERONET_INDEX
103
-    echo "  <li><a href=\"${FORUM_FILE}.html\">${FORA_STR}</a></li>" >> $ZERONET_INDEX
104
-    echo "  <li><a href=\"${TOX_USERS_FILE}.html\">Tox Users</a></li>" >> $ZERONET_INDEX
105
-    echo '</ol>' >> $ZERONET_INDEX
106
-    echo '' >> $ZERONET_INDEX
107
-    echo '</body>' >> $ZERONET_INDEX
108
-    echo '</html>' >> $ZERONET_INDEX
158
+	echo '</ol>' >> $ZERONET_INDEX
159
+	echo '' >> $ZERONET_INDEX
160
+	echo "<H2>On the Mesh</H2>" >> $ZERONET_INDEX
161
+	echo '' >> $ZERONET_INDEX
162
+	echo '<ol type="square">' >> $ZERONET_INDEX
163
+	echo "  <li><a href=\"${BLOGS_FILE}.html\">${BLOGS_STR}</a></li>" >> $ZERONET_INDEX
164
+	echo "  <li><a href=\"${MAIL_FILE}.html\">${MAIL_STR}</a></li>" >> $ZERONET_INDEX
165
+	echo "  <li><a href=\"${FORUM_FILE}.html\">${FORA_STR}</a></li>" >> $ZERONET_INDEX
166
+	echo "  <li><a href=\"${TOX_USERS_FILE}.html\">Tox Users</a></li>" >> $ZERONET_INDEX
167
+	echo '</ol>' >> $ZERONET_INDEX
168
+	echo '' >> $ZERONET_INDEX
169
+	echo '</body>' >> $ZERONET_INDEX
170
+	echo '</html>' >> $ZERONET_INDEX
109 171
 }
110 172
 
111 173
 function create_header {
112
-    header_file=${1}-header.html
113
-    if [ -f $header_file ]; then
114
-        return
115
-    fi
116
-    echo '<!DOCTYPE html>' > $header_file
117
-    echo '<html>' >> $header_file
118
-    echo '<head>' >> $header_file
119
-    echo "<title>$WEB_PAGE_TITLE - $2</title>" >> $header_file
120
-    echo '<meta http-equiv="refresh" content="60">' >> $header_file
121
-    echo '</head>' >> $header_file
122
-    echo '<body>' >> $header_file
123
-    echo "<H1>$2</H1>" >> $header_file
174
+	header_file=${1}-header.html
175
+	if [ -f $header_file ]; then
176
+		return
177
+	fi
178
+	echo '<!DOCTYPE html>' > $header_file
179
+	echo '<html>' >> $header_file
180
+	echo '<head>' >> $header_file
181
+	echo "<title>$WEB_PAGE_TITLE - $2</title>" >> $header_file
182
+	echo '<meta http-equiv="refresh" content="60">' >> $header_file
183
+	echo '</head>' >> $header_file
184
+	echo '<body>' >> $header_file
185
+	echo "<H1>$2</H1>" >> $header_file
124 186
 }
125 187
 
126 188
 function create_footer {
127
-    footer_file=${1}-footer.html
128
-    if [ -f $footer_file ]; then
129
-        return
130
-    fi
131
-    echo '</body>' >> $footer_file
132
-    echo '</html>' >> $footer_file
189
+	footer_file=${1}-footer.html
190
+	if [ -f $footer_file ]; then
191
+		return
192
+	fi
193
+	echo '</body>' >> $footer_file
194
+	echo '</html>' >> $footer_file
133 195
 }
134 196
 
135
-if [ ! -d /etc/avahi ]; then
136
-    exit 0
137
-fi
138
-
139
-# Create a list of bootstrap nodes
140
-TEMPFILE_BASE=/tmp/tmpzeronetavahibase.txt
141
-TEMPFILE=/tmp/tmpzeronetavahi.txt
142
-avahi-browse -atr > $TEMPFILE_BASE
143
-cat $TEMPFILE_BASE | grep "hostname =\|address =\|port =" > $TEMPFILE
144
-if [ ! -f $TEMPFILE ]; then
145
-    exit 1
146
-fi
147
-
148
-if [ -f $ZERONET_CONFIG.new ]; then
149
-    rm -f $ZERONET_CONFIG.new
150
-fi
197
+function avahi_extract_info {
198
+	# Create a list of bootstrap nodes
199
+	avahi-browse -atr > $TEMPFILE_BASE
200
+	cat $TEMPFILE_BASE | grep "hostname =\|address =\|port =" > $TEMPFILE
201
+	if [ ! -f $TEMPFILE ]; then
202
+		exit 1
203
+	fi
204
+}
151 205
 
152
-touch $ZERONET_CONFIG.new
153
-
154
-state=0
155
-address=""
156
-peer=""
157
-tracker_ctr=0
158
-while IFS='' read -r line || [[ -n "$line" ]]; do
159
-    if [ ${state} -eq "1" ]; then
160
-        if [[ $line == *"address ="* ]]; then
161
-            address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
162
-            tracker_url="http://$peer:$TRACKER_PORT/announce"
163
-            if ! grep -q "$tracker_url" $ZERONET_CONFIG.new; then
164
-                echo "$tracker_url" >> $ZERONET_CONFIG.new
165
-                tracker_ctr=$((tracker_ctr + 1))
166
-            fi
167
-            state=0
168
-        fi
169
-    fi
170
-    if [[ $line == *"hostname ="* ]]; then
171
-        peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
172
-        state=1
173
-    fi
174
-done < "$TEMPFILE"
175
-
176
-# detect blogs in the mesh
177
-if [ -f $BLOGS_FILE.new ]; then
178
-    rm -f $BLOGS_FILE.new
179
-fi
206
+function zeronet_detect {
207
+	if [ -f $ZERONET_CONFIG.new ]; then
208
+		rm -f $ZERONET_CONFIG.new
209
+	fi
210
+
211
+	touch $ZERONET_CONFIG.new
212
+
213
+	state=0
214
+	address=""
215
+	peer=""
216
+	tracker_ctr=0
217
+	while IFS='' read -r line || [[ -n "$line" ]]; do
218
+		if [ ${state} -eq "1" ]; then
219
+			if [[ $line == *"address ="* ]]; then
220
+				address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
221
+				tracker_url="http://$peer:$TRACKER_PORT/announce"
222
+				if ! grep -q "$tracker_url" $ZERONET_CONFIG.new; then
223
+					echo "$tracker_url" >> $ZERONET_CONFIG.new
224
+					tracker_ctr=$((tracker_ctr + 1))
225
+				fi
226
+				state=0
227
+			fi
228
+		fi
229
+		if [[ $line == *"hostname ="* ]]; then
230
+			peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
231
+			state=1
232
+		fi
233
+	done < "$TEMPFILE"
234
+}
180 235
 
181
-cat $TEMPFILE_BASE | grep "${ZERONET_BLOG_STR}\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
182
-
183
-state=0
184
-address=""
185
-peer=""
186
-echo '<ol type="square">' >> $BLOGS_FILE.new
187
-while IFS='' read -r line || [[ -n "$line" ]]; do
188
-    if [ ${state} -eq "3" ]; then
189
-        if [[ $line == *"txt ="* ]]; then
190
-            blog_url=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
191
-            echo "  <li><a href=${blog_url}>${peer}</a></li>" >> $BLOGS_FILE.new
192
-            state=0
193
-        fi
194
-    fi
195
-    if [ ${state} -eq "2" ]; then
196
-        if [[ $line == *"address ="* ]]; then
197
-            address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
198
-            state=3
199
-        fi
200
-    fi
201
-    if [ ${state} -eq "1" ]; then
202
-        if [[ $line == *"hostname ="* ]]; then
203
-            peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
204
-            state=2
205
-        fi
206
-    fi
207
-    if [[ $line == *"${ZERONET_BLOG_STR}"* && $line == "= "* ]]; then
208
-        state=1
209
-    fi
210
-done < "$TEMPFILE"
211
-echo '</ol>' >> $BLOGS_FILE.new
212
-
213
-
214
-# detect mail in the mesh
215
-if [ -f $MAIL_FILE.new ]; then
216
-    rm -f $MAIL_FILE.new
217
-fi
236
+function zeronet_detect_blog {
237
+	if [ -f $BLOGS_FILE.new ]; then
238
+		rm -f $BLOGS_FILE.new
239
+	fi
240
+
241
+	cat $TEMPFILE_BASE | grep "${ZERONET_BLOG_STR}\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
242
+
243
+	state=0
244
+	address=""
245
+	peer=""
246
+	echo '<ol type="square">' >> $BLOGS_FILE.new
247
+	while IFS='' read -r line || [[ -n "$line" ]]; do
248
+		if [ ${state} -eq "3" ]; then
249
+			if [[ $line == *"txt ="* ]]; then
250
+				blog_url=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
251
+				echo "  <li><a href=${blog_url}>${peer}</a></li>" >> $BLOGS_FILE.new
252
+				state=0
253
+			fi
254
+		fi
255
+		if [ ${state} -eq "2" ]; then
256
+			if [[ $line == *"address ="* ]]; then
257
+				address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
258
+				state=3
259
+			fi
260
+		fi
261
+		if [ ${state} -eq "1" ]; then
262
+			if [[ $line == *"hostname ="* ]]; then
263
+				peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
264
+				state=2
265
+			fi
266
+		fi
267
+		if [[ $line == *"${ZERONET_BLOG_STR}"* && $line == "= "* ]]; then
268
+			state=1
269
+		fi
270
+	done < "$TEMPFILE"
271
+	echo '</ol>' >> $BLOGS_FILE.new
272
+}
218 273
 
219
-cat $TEMPFILE_BASE | grep "${ZERONET_MAIL_STR}\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
220
-
221
-state=0
222
-address=""
223
-peer=""
224
-echo '<ol type="square">' >> $MAIL_FILE.new
225
-while IFS='' read -r line || [[ -n "$line" ]]; do
226
-    if [ ${state} -eq "3" ]; then
227
-        if [[ $line == *"txt ="* ]]; then
228
-            mail_url=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
229
-            echo "  <li><a href=${mail_url}>${peer}</a></li>" >> $MAIL_FILE.new
230
-            state=0
231
-        fi
232
-    fi
233
-    if [ ${state} -eq "2" ]; then
234
-        if [[ $line == *"address ="* ]]; then
235
-            address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
236
-            state=3
237
-        fi
238
-    fi
239
-    if [ ${state} -eq "1" ]; then
240
-        if [[ $line == *"hostname ="* ]]; then
241
-            peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
242
-            state=2
243
-        fi
244
-    fi
245
-    if [[ $line == *"${ZERONET_MAIL_STR}"* && $line == "= "* ]]; then
246
-        state=1
247
-    fi
248
-done < "$TEMPFILE"
249
-echo '</ol>' >> $MAIL_FILE.new
250
-
251
-
252
-# detect fora in the mesh
253
-if [ -f $FORUM_FILE.new ]; then
254
-    rm -f $FORUM_FILE.new
255
-fi
274
+function zeronet_detect_mail {
275
+	if [ -f $MAIL_FILE.new ]; then
276
+		rm -f $MAIL_FILE.new
277
+	fi
278
+
279
+	cat $TEMPFILE_BASE | grep "${ZERONET_MAIL_STR}\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
280
+
281
+	state=0
282
+	address=""
283
+	peer=""
284
+	echo '<ol type="square">' >> $MAIL_FILE.new
285
+	while IFS='' read -r line || [[ -n "$line" ]]; do
286
+		if [ ${state} -eq "3" ]; then
287
+			if [[ $line == *"txt ="* ]]; then
288
+				mail_url=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
289
+				echo "  <li><a href=${mail_url}>${peer}</a></li>" >> $MAIL_FILE.new
290
+				state=0
291
+			fi
292
+		fi
293
+		if [ ${state} -eq "2" ]; then
294
+			if [[ $line == *"address ="* ]]; then
295
+				address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
296
+				state=3
297
+			fi
298
+		fi
299
+		if [ ${state} -eq "1" ]; then
300
+			if [[ $line == *"hostname ="* ]]; then
301
+				peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
302
+				state=2
303
+			fi
304
+		fi
305
+		if [[ $line == *"${ZERONET_MAIL_STR}"* && $line == "= "* ]]; then
306
+			state=1
307
+		fi
308
+	done < "$TEMPFILE"
309
+	echo '</ol>' >> $MAIL_FILE.new
310
+}
256 311
 
257
-cat $TEMPFILE_BASE | grep "${ZERONET_FORUM_STR}\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
258
-
259
-state=0
260
-address=""
261
-peer=""
262
-echo '<ol type="square">' >> $FORUM_FILE.new
263
-while IFS='' read -r line || [[ -n "$line" ]]; do
264
-    if [ ${state} -eq "3" ]; then
265
-        if [[ $line == *"txt ="* ]]; then
266
-            forum_url=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
267
-            echo "  <li><a href=${forum_url}>${peer}</a></li>" >> $FORUM_FILE.new
268
-            state=0
269
-        fi
270
-    fi
271
-    if [ ${state} -eq "2" ]; then
272
-        if [[ $line == *"address ="* ]]; then
273
-            address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
274
-            state=3
275
-        fi
276
-    fi
277
-    if [ ${state} -eq "1" ]; then
278
-        if [[ $line == *"hostname ="* ]]; then
279
-            peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
280
-            state=2
281
-        fi
282
-    fi
283
-    if [[ $line == *"${ZERONET_FORUM_STR}"* && $line == "= "* ]]; then
284
-        state=1
285
-    fi
286
-done < "$TEMPFILE"
287
-echo '<ol>' >> $FORUM_FILE.new
288
-
289
-
290
-# IPFS bootstrap
291
-cat $TEMPFILE_BASE | grep "IPFS\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
292
-
293
-state=0
294
-address=""
295
-peer=""
296
-while IFS='' read -r line || [[ -n "$line" ]]; do
297
-    if [ ${state} -eq "3" ]; then
298
-        if [[ $line == *"txt ="* ]]; then
299
-            ipfs_peer_id=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}' | awk -F '"' '{print $2}')
300
-            ipfs bootstrap add /ip4/${address}/tcp/${IPFS_PORT}/ipfs/${ipfs_peer_id}
301
-            state=0
302
-        fi
303
-    fi
304
-    if [ ${state} -eq "2" ]; then
305
-        if [[ $line == *"address ="* ]]; then
306
-            address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
307
-            state=3
308
-        fi
309
-    fi
310
-    if [ ${state} -eq "1" ]; then
311
-        if [[ $line == *"hostname ="* ]]; then
312
-            peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
313
-            state=2
314
-        fi
315
-    fi
316
-    if [[ $line == *"IPFS"* && $line == "= "* ]]; then
317
-        state=1
318
-    fi
319
-done < "$TEMPFILE"
320
-
321
-
322
-# detect Tox users
323
-lstox > $TEMPFILE
324
-toxctr=0
325
-echo '<ol type="square">' >> $TOX_USERS_FILE.new
326
-while IFS='' read -r line || [[ -n "$line" ]]; do
327
-    if [[ $line != "Failed*" ]]; then
328
-        echo "  <li>$line</li>" >> $TOX_USERS_FILE.new
329
-        toxctr=$((toxctr + 1))
330
-    fi
331
-done < "$TEMPFILE"
332
-if [ $toxctr -eq "0" ]; then
333
-    echo "  <li>${NO_USERS_STR}</li>" >> $TOX_USERS_FILE.new
334
-fi
335
-echo '<ol>' >> $TOX_USERS_FILE.new
312
+function zeronet_detect_fora {
313
+	if [ -f $FORUM_FILE.new ]; then
314
+		rm -f $FORUM_FILE.new
315
+	fi
316
+
317
+	cat $TEMPFILE_BASE | grep "${ZERONET_FORUM_STR}\|hostname =\|address =\|port =\|txt =" > $TEMPFILE
318
+
319
+	state=0
320
+	address=""
321
+	peer=""
322
+	echo '<ol type="square">' >> $FORUM_FILE.new
323
+	while IFS='' read -r line || [[ -n "$line" ]]; do
324
+		if [ ${state} -eq "3" ]; then
325
+			if [[ $line == *"txt ="* ]]; then
326
+				forum_url=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
327
+				echo "  <li><a href=${forum_url}>${peer}</a></li>" >> $FORUM_FILE.new
328
+				state=0
329
+			fi
330
+		fi
331
+		if [ ${state} -eq "2" ]; then
332
+			if [[ $line == *"address ="* ]]; then
333
+				address=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
334
+				state=3
335
+			fi
336
+		fi
337
+		if [ ${state} -eq "1" ]; then
338
+			if [[ $line == *"hostname ="* ]]; then
339
+				peer=$(echo $line | awk -F '[' '{print $2}' | awk -F ']' '{print $1}')
340
+				state=2
341
+			fi
342
+		fi
343
+		if [[ $line == *"${ZERONET_FORUM_STR}"* && $line == "= "* ]]; then
344
+			state=1
345
+		fi
346
+	done < "$TEMPFILE"
347
+	echo '<ol>' >> $FORUM_FILE.new
348
+}
336 349
 
350
+function avahi_remove_info {
351
+	rm -f $TEMPFILE_BASE
352
+	rm -f $TEMPFILE
353
+}
337 354
 
338
-rm -f $TEMPFILE_BASE
339
-rm -f $TEMPFILE
355
+function zeronet_update_config {
356
+	if [ ${tracker_ctr} -gt "0" ]; then
357
+		cp -f $ZERONET_CONFIG.new $ZERONET_CONFIG
358
+	else
359
+		if [ -f $ZERONET_CONFIG ]; then
360
+			rm -f $ZERONET_CONFIG
361
+		fi
362
+	fi
363
+	rm -f $ZERONET_CONFIG.new
364
+	if [ -d $ZERONET_USER_HOME ]; then
365
+		sudo chown zeronet:zeronet $ZERONET_CONFIG
366
+	fi
367
+}
340 368
 
341
-if [ ${tracker_ctr} -gt "0" ]; then
342
-    cp -f $ZERONET_CONFIG.new $ZERONET_CONFIG
343
-else
344
-    if [ -f $ZERONET_CONFIG ]; then
345
-        rm -f $ZERONET_CONFIG
346
-    fi
347
-fi
348
-rm -f $ZERONET_CONFIG.new
349
-if [ -d $ZERONET_USER_HOME ]; then
350
-    sudo chown zeronet:zeronet $ZERONET_CONFIG
369
+if [ ! -d /etc/avahi ]; then
370
+	exit 0
351 371
 fi
352 372
 
373
+avahi_extract_info
374
+zeronet_detect
375
+zeronet_detect_blog
376
+zeronet_detect_mail
377
+zeronet_detect_fora
378
+ipfs_bootstrap
379
+detect_tox_users
380
+avahi_remove_info
381
+zeronet_update_config
382
+
353 383
 # make some html headers and footers
354 384
 create_header $BLOGS_FILE $BLOGS_STR
355 385
 create_header $MAIL_FILE $MAIL_STR
@@ -363,32 +393,9 @@ create_footer $TOX_USERS_FILE
363 393
 # make the index page
364 394
 create_index
365 395
 
366
-# create a web page showing the available blogs
367
-cat ${BLOGS_FILE}-header.html ${BLOGS_FILE}.new ${BLOGS_FILE}-footer.html > ${BLOGS_FILE}.html
368
-rm -f ${BLOGS_FILE}.new
369
-if [ -d $ZERONET_USER_HOME ]; then
370
-    sudo chown zeronet:zeronet $BLOGS_FILE
371
-fi
372
-
373
-# create a web page showing the available mail contacts
374
-cat ${MAIL_FILE}-header.html ${MAIL_FILE}.new ${MAIL_FILE}-footer.html > ${MAIL_FILE}.html
375
-rm -f ${MAIL_FILE}.new
376
-if [ -d $ZERONET_USER_HOME ]; then
377
-    sudo chown zeronet:zeronet $MAIL_FILE
378
-fi
379
-
380
-# create a web page showing the available fora
381
-cat ${FORUM_FILE}-header.html ${FORUM_FILE}.new ${FORUM_FILE}-footer.html > ${FORUM_FILE}.html
382
-rm -f ${FORUM_FILE}.new
383
-if [ -d $ZERONET_USER_HOME ]; then
384
-    sudo chown zeronet:zeronet $FORUM_FILE
385
-fi
386
-
387
-# create a web page showing Tox users
388
-cat ${TOX_USERS_FILE}-header.html ${TOX_USERS_FILE}.new ${TOX_USERS_FILE}-footer.html > ${TOX_USERS_FILE}.html
389
-rm -f ${TOX_USERS_FILE}.new
390
-if [ -d $ZERONET_USER_HOME ]; then
391
-    sudo chown zeronet:zeronet $TOX_USERS_FILE
392
-fi
396
+assemble_web_page ${BLOGS_FILE} $ZERONET_USER_HOME
397
+assemble_web_page ${MAIL_FILE} $ZERONET_USER_HOME
398
+assemble_web_page ${FORUM_FILE} $ZERONET_USER_HOME
399
+assemble_web_page ${TOX_USERS_FILE} $ZERONET_USER_HOME
393 400
 
394 401
 exit 0