소스 검색

Allow mesh client identity to be reset

Bob Mottram 8 년 전
부모
커밋
d5e5d26d06
3개의 변경된 파일534개의 추가작업 그리고 395개의 파일을 삭제
  1. 9
    1
      src/freedombone-image-customise
  2. 475
    394
      src/freedombone-image-mesh
  3. 50
    0
      src/freedombone-mesh-reset

+ 9
- 1
src/freedombone-image-customise 파일 보기

@@ -574,7 +574,15 @@ function mesh_client_startup_applications {
574 574
 	echo 'Icon=qtox' >> $rootdir/home/$MY_USERNAME/Desktop/tox.desktop
575 575
 	echo 'StartupNotify=true' >> $rootdir/home/$MY_USERNAME/Desktop/tox.desktop
576 576
 
577
-	cp $rootdir/home/$MY_USERNAME/Desktop/tox.desktop $rootdir/home/$MY_USERNAME/.config/autostart/tox.desktop
577
+	echo '[Desktop Entry]' > $rootdir/home/$MY_USERNAME/Desktop/new_identity.desktop
578
+	echo 'Name=New Identity' >> $rootdir/home/$MY_USERNAME/Desktop/new_identity.desktop
579
+	echo 'Type=Application' >> $rootdir/home/$MY_USERNAME/Desktop/new_identity.desktop
580
+	echo 'Comment=Create a new identity' >> $rootdir/home/$MY_USERNAME/Desktop/new_identity.desktop
581
+	echo 'TryExec=freedombone-mesh-reset' >> $rootdir/home/$MY_USERNAME/Desktop/new_identity.desktop
582
+	echo 'Exec=freedombone-mesh-reset' >> $rootdir/home/$MY_USERNAME/Desktop/new_identity.desktop
583
+	echo 'Icon=user-away' >> $rootdir/home/$MY_USERNAME/Desktop/new_identity.desktop
584
+
585
+	#cp $rootdir/home/$MY_USERNAME/Desktop/tox.desktop $rootdir/home/$MY_USERNAME/.config/autostart/tox.desktop
578 586
 
579 587
 	chroot "$rootdir" chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
580 588
 }

+ 475
- 394
src/freedombone-image-mesh 파일 보기

@@ -48,439 +48,520 @@ TOX_NODES=
48 48
 #)
49 49
 
50 50
 MESH_INSTALL_DIR=/var/lib
51
+MESH_INSTALL_COMPLETED=/root/.mesh_setup_completed
52
+MESH_INSTALL_SETUP=/root/.initial_mesh_setup
51 53
 
52 54
 function set_hostname {
53
-    DEFAULT_DOMAIN_NAME="$1"
55
+	DEFAULT_DOMAIN_NAME="$1"
54 56
 
55
-    echo "$DEFAULT_DOMAIN_NAME" > /etc/hostname
56
-    hostname $DEFAULT_DOMAIN_NAME
57
+	echo "$DEFAULT_DOMAIN_NAME" > /etc/hostname
58
+	hostname $DEFAULT_DOMAIN_NAME
57 59
 
58
-    if grep -q "127.0.1.1" /etc/hosts; then
59
-        sed -i "s/127.0.1.1.*/127.0.1.1       $DEFAULT_DOMAIN_NAME/g" /etc/hosts
60
-    else
61
-        echo "127.0.1.1  $DEFAULT_DOMAIN_NAME" >> /etc/hosts
62
-    fi
60
+	if grep -q "127.0.1.1" /etc/hosts; then
61
+		sed -i "s/127.0.1.1.*/127.0.1.1       $DEFAULT_DOMAIN_NAME/g" /etc/hosts
62
+	else
63
+		echo "127.0.1.1  $DEFAULT_DOMAIN_NAME" >> /etc/hosts
64
+	fi
63 65
 }
64 66
 
65 67
 function change_avahi_name {
66
-    decarray=( 1 2 3 4 5 6 7 8 9 0 )
67
-    PEER_ID=${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}
68
-    sed -i "s|#host-name=.*|host-name=P$PEER_ID|g" /etc/avahi/avahi-daemon.conf
69
-    sed -i "s|host-name=.*|host-name=P$PEER_ID|g" /etc/avahi/avahi-daemon.conf
70
-    set_hostname P$PEER_ID
71
-
72
-    echo "New avahi name for this peer is P$PEER_ID"
73
-    toilet "mesh-$PEER_ID"
74
-    echo $"avahi name changed to P${PEER_ID}.local" >> $INSTALL_LOG
68
+	decarray=( 1 2 3 4 5 6 7 8 9 0 )
69
+	PEER_ID=${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}${decarray[$RANDOM%10]}
70
+	sed -i "s|#host-name=.*|host-name=P$PEER_ID|g" /etc/avahi/avahi-daemon.conf
71
+	sed -i "s|host-name=.*|host-name=P$PEER_ID|g" /etc/avahi/avahi-daemon.conf
72
+	set_hostname P$PEER_ID
73
+
74
+	echo "New avahi name for this peer is P$PEER_ID"
75
+	toilet "mesh-$PEER_ID"
76
+	echo $"avahi name changed to P${PEER_ID}.local" >> $INSTALL_LOG
77
+	if [ -f $MESH_INSTALL_COMPLETED ]; then
78
+		systemctl restart avahi-daemon
79
+	fi
75 80
 }
76 81
 
77 82
 function regenerate_ssh_host_keys {
78
-    echo $"Regenerating ssh host keys" >> $INSTALL_LOG
79
-    rm -f /etc/ssh/ssh_host_*
80
-    dpkg-reconfigure openssh-server
81
-    echo $'ssh host keys regenerated' >> $INSTALL_LOG
82
-    # remove small moduli
83
-    awk '$5 > 2000' /etc/ssh/moduli > ~/moduli
84
-    mv ~/moduli /etc/ssh/moduli
85
-    echo $'ssh small moduli removed' >> $INSTALL_LOG
83
+	echo $"Regenerating ssh host keys" >> $INSTALL_LOG
84
+	rm -f /etc/ssh/ssh_host_*
85
+	dpkg-reconfigure openssh-server
86
+	echo $'ssh host keys regenerated' >> $INSTALL_LOG
87
+	# remove small moduli
88
+	awk '$5 > 2000' /etc/ssh/moduli > ~/moduli
89
+	mv ~/moduli /etc/ssh/moduli
90
+	echo $'ssh small moduli removed' >> $INSTALL_LOG
91
+
92
+	if [ -f $MESH_INSTALL_COMPLETED ]; then
93
+		systemctl restart ssh
94
+	fi
86 95
 }
87 96
 
88 97
 function configure_zeronet {
89
-    sed -i "s|ExecStart=.*|ExecStart=/usr/bin/python zeronet.py --ip_external P${PEER_ID}.local --trackers_file $MESH_INSTALL_DIR/zeronet/bootstrap|g" /etc/systemd/system/zeronet.service
90
-    echo $"zeronet daemon updated to P${PEER_ID}.local" >> $INSTALL_LOG
98
+	sed -i "s|ExecStart=.*|ExecStart=/usr/bin/python zeronet.py --ip_external P${PEER_ID}.local --trackers_file $MESH_INSTALL_DIR/zeronet/bootstrap|g" /etc/systemd/system/zeronet.service
99
+	echo $"zeronet daemon updated to P${PEER_ID}.local" >> $INSTALL_LOG
100
+}
101
+
102
+function remove_zeronet_blog {
103
+	blog_address=$(cat $MESH_INSTALL_DIR/zeronet/blog.txt | grep "Site address" | awk -F ':' '{print $2}')
104
+	ZERONET_BLOG_ADDRESS=${blog_address//[[:blank:]]/}
105
+	if [ -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS ]; then
106
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/*.json
107
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/*.html
108
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data/*
109
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/img/post/*
110
+		rm -rf $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/img/post
111
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/img/*
112
+		rm -rf $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS
113
+	fi
91 114
 }
92 115
 
93 116
 function configure_zeronet_blog {
94
-    echo $'Updating ZeroNet Blog' >> $INSTALL_LOG
95
-    ZERONET_DEFAULT_BLOG_TITLE="${MY_USERNAME}'s Blog"
96
-
97
-    cd $MESH_INSTALL_DIR/zeronet
98
-    python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/blog.txt
99
-    if [ ! -f $MESH_INSTALL_DIR/zeronet/blog.txt ]; then
100
-        echo $'Unable to create ZeroNet blog' >> $INSTALL_LOG
101
-        exit 7386
102
-    fi
103
-    blog_address=$(cat blog.txt | grep "Site address" | awk -F ':' '{print $2}')
104
-    blog_private_key=$(cat blog.txt | grep "Site private key" | awk -F ':' '{print $2}')
105
-    ZERONET_BLOG_ADDRESS=${blog_address//[[:blank:]]/}
106
-    ZERONET_BLOG_PRIVATE_KEY=${blog_private_key//[[:blank:]]/}
107
-
108
-    if [ ${#ZERONET_BLOG_ADDRESS} -lt 20 ]; then
109
-        echo $"Address:    $ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
110
-        echo $"Public key: $ZERONET_BLOG_PRIVATE_KEY" >> $INSTALL_LOG
111
-        echo $'Unable to create zeronet blog address' >> $INSTALL_LOG
112
-        exit 7358
113
-    fi
114
-
115
-    if [ ${#ZERONET_BLOG_PRIVATE_KEY} -lt 20 ]; then
116
-        echo $"Address:    $ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
117
-        echo $"Public key: $ZERONET_BLOG_PRIVATE_KEY" >> $INSTALL_LOG
118
-        echo $'Unable to create zeronet blog private key' >> $INSTALL_LOG
119
-        exit 1639
120
-    fi
121
-
122
-    if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS" ]; then
123
-        echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
124
-        exit 7638
125
-    fi
126
-
127
-    echo $"ZeroNet Blog address:     $ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
128
-    echo $"ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY" >> $INSTALL_LOG
129
-    cp -r $MESH_INSTALL_DIR/zeronet/ZeroBlog/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS
130
-
131
-    if [ ! -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data ]; then
132
-        mkdir $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data
133
-    fi
134
-    cp $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data-default/data.json $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data
135
-    sed -i "s/MyZeroBlog/$ZERONET_DEFAULT_BLOG_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data/data.json
136
-    sed -i "s/My ZeroBlog./$ZERONET_DEFAULT_BLOG_TAGLINE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data/data.json
137
-    sed -i "s/ZeroBlog Demo/$ZERONET_DEFAULT_BLOG_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/index.html
138
-    sed -i "s|<h3 class=\"description\">.*|<h3 class=\"description\">$ZERONET_DEFAULT_BLOG_TAGLINE</h3>|g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/index.html
139
-    sed -i "s/Blogging platform Demo/Blogging platform/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/content.json
140
-    python zeronet.py siteSign $ZERONET_BLOG_ADDRESS $ZERONET_BLOG_PRIVATE_KEY
141
-
142
-    # update the avahi service
143
-    echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-blog.service
144
-    echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-blog.service
145
-    echo '<service-group>' >> /tmp/zeronet-blog.service
146
-    echo '  <name replace-wildcards="yes">%h ZeroNet Blog</name>' >> /tmp/zeronet-blog.service
147
-    echo '  <service>' >> /tmp/zeronet-blog.service
148
-    echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-blog.service
149
-    echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-blog.service
150
-    echo "    <txt-record>$ZERONET_URL/$ZERONET_BLOG_ADDRESS</txt-record>" >> /tmp/zeronet-blog.service
151
-    echo '  </service>' >> /tmp/zeronet-blog.service
152
-    echo '</service-group>' >> /tmp/zeronet-blog.service
153
-    cp /tmp/zeronet-blog.service /etc/avahi/services/zeronet-blog.service
154
-
155
-    if [ ! -d /home/${MY_USERNAME}/.config/zeronet ]; then
156
-        mkdir -p /home/${MY_USERNAME}/.config/zeronet
157
-        chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config
158
-    fi
159
-    echo "$ZERONET_URL/$ZERONET_BLOG_ADDRESS" > /home/${MY_USERNAME}/.config/zeronet/myblog
160
-
161
-    sed -i "s|ZeroNet Blog address.*|ZeroNet Blog address: $ZERONET_BLOG_ADDRESS|g" /home/${MY_USERNAME}/README
162
-    sed -i "s|ZeroNet Blog private key.*|ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY|g" /home/${MY_USERNAME}/README
163
-
164
-    if [ -d ${MESH_INSTALL_DIR}/zeronet ]; then
165
-        chown -R zeronet:zeronet ${MESH_INSTALL_DIR}/zeronet
166
-    fi
167
-
168
-    echo $'Update of ZeroNet Blog completed' >> $INSTALL_LOG
117
+	if [ -f $MESH_INSTALL_COMPLETED ]; then
118
+		remove_zeronet_blog
119
+	fi
120
+
121
+	echo $'Updating ZeroNet Blog' >> $INSTALL_LOG
122
+	ZERONET_DEFAULT_BLOG_TITLE="${MY_USERNAME}'s Blog"
123
+
124
+	cd $MESH_INSTALL_DIR/zeronet
125
+	python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/blog.txt
126
+	if [ ! -f $MESH_INSTALL_DIR/zeronet/blog.txt ]; then
127
+		echo $'Unable to create ZeroNet blog' >> $INSTALL_LOG
128
+		exit 7386
129
+	fi
130
+	blog_address=$(cat $MESH_INSTALL_DIR/zeronet/blog.txt | grep "Site address" | awk -F ':' '{print $2}')
131
+	blog_private_key=$(cat $MESH_INSTALL_DIR/zeronet/blog.txt | grep "Site private key" | awk -F ':' '{print $2}')
132
+	ZERONET_BLOG_ADDRESS=${blog_address//[[:blank:]]/}
133
+	ZERONET_BLOG_PRIVATE_KEY=${blog_private_key//[[:blank:]]/}
134
+
135
+	if [ ${#ZERONET_BLOG_ADDRESS} -lt 20 ]; then
136
+		echo $"Address:    $ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
137
+		echo $"Public key: $ZERONET_BLOG_PRIVATE_KEY" >> $INSTALL_LOG
138
+		echo $'Unable to create zeronet blog address' >> $INSTALL_LOG
139
+		exit 7358
140
+	fi
141
+
142
+	if [ ${#ZERONET_BLOG_PRIVATE_KEY} -lt 20 ]; then
143
+		echo $"Address:    $ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
144
+		echo $"Public key: $ZERONET_BLOG_PRIVATE_KEY" >> $INSTALL_LOG
145
+		echo $'Unable to create zeronet blog private key' >> $INSTALL_LOG
146
+		exit 1639
147
+	fi
148
+
149
+	if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS" ]; then
150
+		echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
151
+		exit 7638
152
+	fi
153
+
154
+	echo $"ZeroNet Blog address:     $ZERONET_BLOG_ADDRESS" >> $INSTALL_LOG
155
+	echo $"ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY" >> $INSTALL_LOG
156
+	cp -r $MESH_INSTALL_DIR/zeronet/ZeroBlog/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS
157
+
158
+	if [ ! -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data ]; then
159
+		mkdir $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data
160
+	fi
161
+	cp $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data-default/data.json $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data
162
+	sed -i "s/MyZeroBlog/$ZERONET_DEFAULT_BLOG_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data/data.json
163
+	sed -i "s/My ZeroBlog./$ZERONET_DEFAULT_BLOG_TAGLINE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/data/data.json
164
+	sed -i "s/ZeroBlog Demo/$ZERONET_DEFAULT_BLOG_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/index.html
165
+	sed -i "s|<h3 class=\"description\">.*|<h3 class=\"description\">$ZERONET_DEFAULT_BLOG_TAGLINE</h3>|g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/index.html
166
+	sed -i "s/Blogging platform Demo/Blogging platform/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_BLOG_ADDRESS/content.json
167
+	python zeronet.py siteSign $ZERONET_BLOG_ADDRESS $ZERONET_BLOG_PRIVATE_KEY
168
+
169
+	# update the avahi service
170
+	echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-blog.service
171
+	echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-blog.service
172
+	echo '<service-group>' >> /tmp/zeronet-blog.service
173
+	echo '  <name replace-wildcards="yes">%h ZeroNet Blog</name>' >> /tmp/zeronet-blog.service
174
+	echo '  <service>' >> /tmp/zeronet-blog.service
175
+	echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-blog.service
176
+	echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-blog.service
177
+	echo "    <txt-record>$ZERONET_URL/$ZERONET_BLOG_ADDRESS</txt-record>" >> /tmp/zeronet-blog.service
178
+	echo '  </service>' >> /tmp/zeronet-blog.service
179
+	echo '</service-group>' >> /tmp/zeronet-blog.service
180
+	cp /tmp/zeronet-blog.service /etc/avahi/services/zeronet-blog.service
181
+
182
+	if [ ! -d /home/${MY_USERNAME}/.config/zeronet ]; then
183
+		mkdir -p /home/${MY_USERNAME}/.config/zeronet
184
+		chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config
185
+	fi
186
+	echo "$ZERONET_URL/$ZERONET_BLOG_ADDRESS" > /home/${MY_USERNAME}/.config/zeronet/myblog
187
+
188
+	sed -i "s|ZeroNet Blog address.*|ZeroNet Blog address: $ZERONET_BLOG_ADDRESS|g" /home/${MY_USERNAME}/README
189
+	sed -i "s|ZeroNet Blog private key.*|ZeroNet Blog private key: $ZERONET_BLOG_PRIVATE_KEY|g" /home/${MY_USERNAME}/README
190
+
191
+	if [ -d ${MESH_INSTALL_DIR}/zeronet ]; then
192
+		chown -R zeronet:zeronet ${MESH_INSTALL_DIR}/zeronet
193
+	fi
194
+
195
+	echo $'Update of ZeroNet Blog completed' >> $INSTALL_LOG
196
+}
197
+
198
+function remove_zeronet_mail {
199
+	mail_address=$(cat $MESH_INSTALL_DIR/zeronet/mail.txt | grep "Site address" | awk -F ':' '{print $2}')
200
+	ZERONET_MAIL_ADDRESS=${mail_address//[[:blank:]]/}
201
+	if [ -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS ]; then
202
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/*.json
203
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/*.html
204
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/users/*
205
+		rm -rf $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/users
206
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/*
207
+		rm -rf $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS
208
+	fi
169 209
 }
170 210
 
171 211
 function configure_zeronet_mail {
172
-    echo $'Updating ZeroNet Mail' >> $INSTALL_LOG
173
-    ZERONET_DEFAULT_MAIL_TITLE="${MY_USERNAME}'s Mail"
174
-
175
-    cd $MESH_INSTALL_DIR/zeronet
176
-    python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/mail.txt
177
-    if [ ! -f $MESH_INSTALL_DIR/zeronet/mail.txt ]; then
178
-        echo $'Unable to create ZeroNet mail' >> $INSTALL_LOG
179
-        exit 72574
180
-    fi
181
-    mail_address=$(cat mail.txt | grep "Site address" | awk -F ':' '{print $2}')
182
-    mail_private_key=$(cat mail.txt | grep "Site private key" | awk -F ':' '{print $2}')
183
-    ZERONET_MAIL_ADDRESS=${mail_address//[[:blank:]]/}
184
-    ZERONET_MAIL_PRIVATE_KEY=${mail_private_key//[[:blank:]]/}
185
-
186
-    if [ ${#ZERONET_MAIL_ADDRESS} -lt 20 ]; then
187
-        echo $"Address:    $ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
188
-        echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY" >> $INSTALL_LOG
189
-        echo $'Unable to create zeronet mail address' >> $INSTALL_LOG
190
-        exit 7358
191
-    fi
192
-
193
-    if [ ${#ZERONET_MAIL_PRIVATE_KEY} -lt 20 ]; then
194
-        echo $"Address:    $ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
195
-        echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY" >> $INSTALL_LOG
196
-        echo $'Unable to create zeronet mail private key' >> $INSTALL_LOG
197
-        exit 1639
198
-    fi
199
-
200
-    if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS" ]; then
201
-        echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
202
-        exit 7638
203
-    fi
204
-
205
-    echo $"ZeroNet Mail address:     $ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
206
-    echo $"ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY" >> $INSTALL_LOG
207
-    cp -r $MESH_INSTALL_DIR/zeronet/ZeroMail/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS
208
-
209
-    if [ ! -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data ]; then
210
-        mkdir $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data
211
-    fi
212
-    cp $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data-default/data.json $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data
213
-    sed -i "s/MyZeroMail/$ZERONET_DEFAULT_MAIL_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
214
-    sed -i "s/My ZeroMail./$ZERONET_DEFAULT_MAIL_TAGLINE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
215
-    sed -i "s/ZeroMail Demo/$ZERONET_DEFAULT_MAIL_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
216
-    sed -i "s|<h3 class=\"description\">.*|<h3 class=\"description\">$ZERONET_DEFAULT_MAIL_TAGLINE</h3>|g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
217
-    sed -i "s/Mailging platform Demo/Mailging platform/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/content.json
218
-    python zeronet.py siteSign $ZERONET_MAIL_ADDRESS $ZERONET_MAIL_PRIVATE_KEY
219
-
220
-    # Add an avahi service
221
-    echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-mail.service
222
-    echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-mail.service
223
-    echo '<service-group>' >> /tmp/zeronet-mail.service
224
-    echo '  <name replace-wildcards="yes">%h ZeroNet Mail</name>' >> /tmp/zeronet-mail.service
225
-    echo '  <service>' >> /tmp/zeronet-mail.service
226
-    echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-mail.service
227
-    echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-mail.service
228
-    echo "    <txt-record>$ZERONET_URL/$ZERONET_MAIL_ADDRESS</txt-record>" >> /tmp/zeronet-mail.service
229
-    echo '  </service>' >> /tmp/zeronet-mail.service
230
-    echo '</service-group>' >> /tmp/zeronet-mail.service
231
-    cp /tmp/zeronet-mail.service /etc/avahi/services/zeronet-mail.service
232
-
233
-    if [ ! -d /home/${MY_USERNAME}/.config/zeronet ]; then
234
-        mkdir -p /home/${MY_USERNAME}/.config/zeronet
235
-        chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config
236
-    fi
237
-    echo "$ZERONET_URL/$ZERONET_MAIL_ADDRESS" > /home/${MY_USERNAME}/.config/zeronet/mymail
238
-
239
-    sed -i "s|ZeroNet Mail address.*|ZeroNet Mail address: $ZERONET_MAIL_ADDRESS|g" /home/${MY_USERNAME}/README
240
-    sed -i "s|ZeroNet Mail private key.*|ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY|g" /home/${MY_USERNAME}/README
241
-
242
-    if [ -d ${MESH_INSTALL_DIR}/zeronet ]; then
243
-        chown -R zeronet:zeronet ${MESH_INSTALL_DIR}/zeronet
244
-    fi
245
-
246
-    echo $'Update of ZeroNet Mail completed' >> $INSTALL_LOG
212
+	if [ -f $MESH_INSTALL_COMPLETED ]; then
213
+		remove_zeronet_mail
214
+	fi
215
+
216
+	echo $'Updating ZeroNet Mail' >> $INSTALL_LOG
217
+	ZERONET_DEFAULT_MAIL_TITLE="${MY_USERNAME}'s Mail"
218
+
219
+	cd $MESH_INSTALL_DIR/zeronet
220
+	python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/mail.txt
221
+	if [ ! -f $MESH_INSTALL_DIR/zeronet/mail.txt ]; then
222
+		echo $'Unable to create ZeroNet mail' >> $INSTALL_LOG
223
+		exit 72574
224
+	fi
225
+	mail_address=$(cat $MESH_INSTALL_DIR/zeronet/mail.txt | grep "Site address" | awk -F ':' '{print $2}')
226
+	mail_private_key=$(cat $MESH_INSTALL_DIR/zeronet/mail.txt | grep "Site private key" | awk -F ':' '{print $2}')
227
+	ZERONET_MAIL_ADDRESS=${mail_address//[[:blank:]]/}
228
+	ZERONET_MAIL_PRIVATE_KEY=${mail_private_key//[[:blank:]]/}
229
+
230
+	if [ ${#ZERONET_MAIL_ADDRESS} -lt 20 ]; then
231
+		echo $"Address:    $ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
232
+		echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY" >> $INSTALL_LOG
233
+		echo $'Unable to create zeronet mail address' >> $INSTALL_LOG
234
+		exit 7358
235
+	fi
236
+
237
+	if [ ${#ZERONET_MAIL_PRIVATE_KEY} -lt 20 ]; then
238
+		echo $"Address:    $ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
239
+		echo $"Public key: $ZERONET_MAIL_PRIVATE_KEY" >> $INSTALL_LOG
240
+		echo $'Unable to create zeronet mail private key' >> $INSTALL_LOG
241
+		exit 1639
242
+	fi
243
+
244
+	if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS" ]; then
245
+		echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
246
+		exit 7638
247
+	fi
248
+
249
+	echo $"ZeroNet Mail address:     $ZERONET_MAIL_ADDRESS" >> $INSTALL_LOG
250
+	echo $"ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY" >> $INSTALL_LOG
251
+	cp -r $MESH_INSTALL_DIR/zeronet/ZeroMail/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS
252
+
253
+	if [ ! -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data ]; then
254
+		mkdir $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data
255
+	fi
256
+	cp $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data-default/data.json $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data
257
+	sed -i "s/MyZeroMail/$ZERONET_DEFAULT_MAIL_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
258
+	sed -i "s/My ZeroMail./$ZERONET_DEFAULT_MAIL_TAGLINE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/data/data.json
259
+	sed -i "s/ZeroMail Demo/$ZERONET_DEFAULT_MAIL_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
260
+	sed -i "s|<h3 class=\"description\">.*|<h3 class=\"description\">$ZERONET_DEFAULT_MAIL_TAGLINE</h3>|g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/index.html
261
+	sed -i "s/Mailging platform Demo/Mailging platform/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_MAIL_ADDRESS/content.json
262
+	python zeronet.py siteSign $ZERONET_MAIL_ADDRESS $ZERONET_MAIL_PRIVATE_KEY
263
+
264
+	# Add an avahi service
265
+	echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-mail.service
266
+	echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-mail.service
267
+	echo '<service-group>' >> /tmp/zeronet-mail.service
268
+	echo '  <name replace-wildcards="yes">%h ZeroNet Mail</name>' >> /tmp/zeronet-mail.service
269
+	echo '  <service>' >> /tmp/zeronet-mail.service
270
+	echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-mail.service
271
+	echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-mail.service
272
+	echo "    <txt-record>$ZERONET_URL/$ZERONET_MAIL_ADDRESS</txt-record>" >> /tmp/zeronet-mail.service
273
+	echo '  </service>' >> /tmp/zeronet-mail.service
274
+	echo '</service-group>' >> /tmp/zeronet-mail.service
275
+	cp /tmp/zeronet-mail.service /etc/avahi/services/zeronet-mail.service
276
+
277
+	if [ ! -d /home/${MY_USERNAME}/.config/zeronet ]; then
278
+		mkdir -p /home/${MY_USERNAME}/.config/zeronet
279
+		chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config
280
+	fi
281
+	echo "$ZERONET_URL/$ZERONET_MAIL_ADDRESS" > /home/${MY_USERNAME}/.config/zeronet/mymail
282
+
283
+	sed -i "s|ZeroNet Mail address.*|ZeroNet Mail address: $ZERONET_MAIL_ADDRESS|g" /home/${MY_USERNAME}/README
284
+	sed -i "s|ZeroNet Mail private key.*|ZeroNet Mail private key: $ZERONET_MAIL_PRIVATE_KEY|g" /home/${MY_USERNAME}/README
285
+
286
+	if [ -d ${MESH_INSTALL_DIR}/zeronet ]; then
287
+		chown -R zeronet:zeronet ${MESH_INSTALL_DIR}/zeronet
288
+	fi
289
+
290
+	echo $'Update of ZeroNet Mail completed' >> $INSTALL_LOG
291
+}
292
+
293
+function remove_zeronet_forum {
294
+	forum_address=$(cat $MESH_INSTALL_DIR/zeronet/forum.txt | grep "Site address" | awk -F ':' '{print $2}')
295
+	ZERONET_FORUM_ADDRESS=${forum_address//[[:blank:]]/}
296
+	if [ -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS ]; then
297
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/data/users/*
298
+		rm -rf $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/data/users
299
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/data/*
300
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/*.html
301
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/*.json
302
+		rm -rf $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS
303
+	fi
247 304
 }
248 305
 
249 306
 function configure_zeronet_forum {
250
-    echo $'Updating ZeroNet Forum' >> $INSTALL_LOG
251
-    ZERONET_DEFAULT_FORUM_TITLE="${MY_USERNAME}'s Forum"
252
-
253
-    cd $MESH_INSTALL_DIR/zeronet
254
-    python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/forum.txt
255
-    if [ ! -f $MESH_INSTALL_DIR/zeronet/forum.txt ]; then
256
-        echo $'Unable to create ZeroNet forum' >> $INSTALL_LOG
257
-        exit 47962
258
-    fi
259
-    forum_address=$(cat forum.txt | grep "Site address" | awk -F ':' '{print $2}')
260
-    forum_private_key=$(cat forum.txt | grep "Site private key" | awk -F ':' '{print $2}')
261
-    ZERONET_FORUM_ADDRESS=${forum_address//[[:blank:]]/}
262
-    ZERONET_FORUM_PRIVATE_KEY=${forum_private_key//[[:blank:]]/}
263
-
264
-    if [ ${#ZERONET_FORUM_ADDRESS} -lt 20 ]; then
265
-        echo $"Address:    $ZERONET_FORUM_ADDRESS" >> $INSTALL_LOG
266
-        echo $"Public key: $ZERONET_FORUM_PRIVATE_KEY" >> $INSTALL_LOG
267
-        echo $'Unable to create zeronet forum address' >> $INSTALL_LOG
268
-        exit 76352
269
-    fi
270
-
271
-    if [ ${#ZERONET_FORUM_PRIVATE_KEY} -lt 20 ]; then
272
-        echo $"Address:    $ZERONET_FORUM_ADDRESS" >> $INSTALL_LOG
273
-        echo $"Public key: $ZERONET_FORUM_PRIVATE_KEY" >> $INSTALL_LOG
274
-        echo $'Unable to create zeronet forum private key' >> $INSTALL_LOG
275
-        exit 87356
276
-    fi
277
-
278
-    if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS" ]; then
279
-        echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS" >> $INSTALL_LOG
280
-        exit 7638
281
-    fi
282
-
283
-    echo $"Forum address:     $ZERONET_FORUM_ADDRESS"
284
-    echo $"Forum private key: $ZERONET_FORUM_PRIVATE_KEY"
285
-    cp -r $MESH_INSTALL_DIR/zeronet/ZeroTalk/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS
286
-    sed -i "s/ZeroBoard/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
287
-    sed -i "s/ZeroTalk/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
288
-    sed -i "s|Demo for dynamic, decentralized content publishing.|$ZERONET_DEFAULT_FORUM_TAGLINE|g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
289
-    sed -i 's/Messaging Board Demo/Messaging Board/g' $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/content.json
290
-    sed -i "s/ZeroBoard/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/content.json
291
-    python zeronet.py siteSign $ZERONET_FORUM_ADDRESS $ZERONET_FORUM_PRIVATE_KEY --inner_path data/users/content.json
292
-
293
-    # Add an avahi service
294
-    echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-forum.service
295
-    echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-forum.service
296
-    echo '<service-group>' >> /tmp/zeronet-forum.service
297
-    echo '  <name replace-wildcards="yes">%h ZeroNet Forum</name>' >> /tmp/zeronet-forum.service
298
-    echo '  <service>' >> /tmp/zeronet-forum.service
299
-    echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-forum.service
300
-    echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-forum.service
301
-    echo "    <txt-record>$ZERONET_URL/$ZERONET_FORUM_ADDRESS</txt-record>" >> /tmp/zeronet-forum.service
302
-    echo '  </service>' >> /tmp/zeronet-forum.service
303
-    echo '</service-group>' >> /tmp/zeronet-forum.service
304
-    sudo cp /tmp/zeronet-forum.service /etc/avahi/services/zeronet-forum.service
305
-
306
-    if [ ! -d /home/${MY_USERNAME}/.config/zeronet ]; then
307
-        mkdir -p /home/${MY_USERNAME}/.config/zeronet
308
-        chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config
309
-    fi
310
-    echo "$ZERONET_URL/$ZERONET_FORUM_ADDRESS" > /home/${MY_USERNAME}/.config/zeronet/myforum
311
-
312
-    sed -i "s|ZeroNet Forum address.*|ZeroNet Forum address: $ZERONET_FORUM_ADDRESS|g" /home/${MY_USERNAME}/README
313
-    sed -i "s|ZeroNet Forum private key.*|ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY|g" /home/${MY_USERNAME}/README
314
-
315
-    if [ -d ${MESH_INSTALL_DIR}/zeronet ]; then
316
-        chown -R zeronet:zeronet ${MESH_INSTALL_DIR}/zeronet
317
-    fi
318
-
319
-    echo $'Update of ZeroNet Forum completed' >> $INSTALL_LOG
307
+	if [ -f $MESH_INSTALL_COMPLETED ]; then
308
+		remove_zeronet_forum
309
+	fi
310
+	echo $'Updating ZeroNet Forum' >> $INSTALL_LOG
311
+	ZERONET_DEFAULT_FORUM_TITLE="${MY_USERNAME}'s Forum"
312
+
313
+	cd $MESH_INSTALL_DIR/zeronet
314
+	python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/forum.txt
315
+	if [ ! -f $MESH_INSTALL_DIR/zeronet/forum.txt ]; then
316
+		echo $'Unable to create ZeroNet forum' >> $INSTALL_LOG
317
+		exit 47962
318
+	fi
319
+	forum_address=$(cat $MESH_INSTALL_DIR/zeronet/forum.txt | grep "Site address" | awk -F ':' '{print $2}')
320
+	forum_private_key=$(cat $MESH_INSTALL_DIR/zeronet/forum.txt | grep "Site private key" | awk -F ':' '{print $2}')
321
+	ZERONET_FORUM_ADDRESS=${forum_address//[[:blank:]]/}
322
+	ZERONET_FORUM_PRIVATE_KEY=${forum_private_key//[[:blank:]]/}
323
+
324
+	if [ ${#ZERONET_FORUM_ADDRESS} -lt 20 ]; then
325
+		echo $"Address:    $ZERONET_FORUM_ADDRESS" >> $INSTALL_LOG
326
+		echo $"Public key: $ZERONET_FORUM_PRIVATE_KEY" >> $INSTALL_LOG
327
+		echo $'Unable to create zeronet forum address' >> $INSTALL_LOG
328
+		exit 76352
329
+	fi
330
+
331
+	if [ ${#ZERONET_FORUM_PRIVATE_KEY} -lt 20 ]; then
332
+		echo $"Address:    $ZERONET_FORUM_ADDRESS" >> $INSTALL_LOG
333
+		echo $"Public key: $ZERONET_FORUM_PRIVATE_KEY" >> $INSTALL_LOG
334
+		echo $'Unable to create zeronet forum private key' >> $INSTALL_LOG
335
+		exit 87356
336
+	fi
337
+
338
+	if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS" ]; then
339
+		echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS" >> $INSTALL_LOG
340
+		exit 7638
341
+	fi
342
+
343
+	echo $"Forum address:     $ZERONET_FORUM_ADDRESS"
344
+	echo $"Forum private key: $ZERONET_FORUM_PRIVATE_KEY"
345
+	cp -r $MESH_INSTALL_DIR/zeronet/ZeroTalk/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS
346
+	sed -i "s/ZeroBoard/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
347
+	sed -i "s/ZeroTalk/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
348
+	sed -i "s|Demo for dynamic, decentralized content publishing.|$ZERONET_DEFAULT_FORUM_TAGLINE|g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/index.html
349
+	sed -i 's/Messaging Board Demo/Messaging Board/g' $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/content.json
350
+	sed -i "s/ZeroBoard/$ZERONET_DEFAULT_FORUM_TITLE/g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_FORUM_ADDRESS/content.json
351
+	python zeronet.py siteSign $ZERONET_FORUM_ADDRESS $ZERONET_FORUM_PRIVATE_KEY --inner_path data/users/content.json
352
+
353
+	# Add an avahi service
354
+	echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-forum.service
355
+	echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-forum.service
356
+	echo '<service-group>' >> /tmp/zeronet-forum.service
357
+	echo '  <name replace-wildcards="yes">%h ZeroNet Forum</name>' >> /tmp/zeronet-forum.service
358
+	echo '  <service>' >> /tmp/zeronet-forum.service
359
+	echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-forum.service
360
+	echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-forum.service
361
+	echo "    <txt-record>$ZERONET_URL/$ZERONET_FORUM_ADDRESS</txt-record>" >> /tmp/zeronet-forum.service
362
+	echo '  </service>' >> /tmp/zeronet-forum.service
363
+	echo '</service-group>' >> /tmp/zeronet-forum.service
364
+	sudo cp /tmp/zeronet-forum.service /etc/avahi/services/zeronet-forum.service
365
+
366
+	if [ ! -d /home/${MY_USERNAME}/.config/zeronet ]; then
367
+		mkdir -p /home/${MY_USERNAME}/.config/zeronet
368
+		chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config
369
+	fi
370
+	echo "$ZERONET_URL/$ZERONET_FORUM_ADDRESS" > /home/${MY_USERNAME}/.config/zeronet/myforum
371
+
372
+	sed -i "s|ZeroNet Forum address.*|ZeroNet Forum address: $ZERONET_FORUM_ADDRESS|g" /home/${MY_USERNAME}/README
373
+	sed -i "s|ZeroNet Forum private key.*|ZeroNet Forum private key: $ZERONET_FORUM_PRIVATE_KEY|g" /home/${MY_USERNAME}/README
374
+
375
+	if [ -d ${MESH_INSTALL_DIR}/zeronet ]; then
376
+		chown -R zeronet:zeronet ${MESH_INSTALL_DIR}/zeronet
377
+	fi
378
+
379
+	echo $'Update of ZeroNet Forum completed' >> $INSTALL_LOG
380
+}
381
+
382
+function remove_zeronet_id {
383
+	zeroid_address=$(cat $MESH_INSTALL_DIR/zeronet/zeroid.txt | grep "Site address" | awk -F ':' '{print $2}')
384
+	ZERONET_ID_ADDRESS=${zeroid_address//[[:blank:]]/}
385
+	if [ -d $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS ]; then
386
+		shred -zu $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS/*
387
+		rm -rf $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS
388
+	fi
320 389
 }
321 390
 
322 391
 function configure_zeronet_id {
323
-    echo $'Updating ZeroID' >> $INSTALL_LOG
324
-
325
-    cd $MESH_INSTALL_DIR/zeronet
326
-    python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/zeroid.txt
327
-    if [ ! -f $MESH_INSTALL_DIR/zeronet/zeroid.txt ]; then
328
-        echo $'Unable to create ZeroID' >> $INSTALL_LOG
329
-        exit 47962
330
-    fi
331
-    zeroid_address=$(cat zeroid.txt | grep "Site address" | awk -F ':' '{print $2}')
332
-    zeroid_private_key=$(cat zeroid.txt | grep "Site private key" | awk -F ':' '{print $2}')
333
-    ZERONET_ID_ADDRESS=${zeroid_address//[[:blank:]]/}
334
-    ZERONET_ID_PRIVATE_KEY=${zeroid_private_key//[[:blank:]]/}
335
-
336
-    if [ ${#ZERONET_ID_ADDRESS} -lt 20 ]; then
337
-        echo $"Address:    $ZERONET_ID_ADDRESS" >> $INSTALL_LOG
338
-        echo $"Public key: $ZERONET_ID_PRIVATE_KEY" >> $INSTALL_LOG
339
-        echo $'Unable to create ZeroID address' >> $INSTALL_LOG
340
-        exit 76352
341
-    fi
342
-
343
-    if [ ${#ZERONET_ID_PRIVATE_KEY} -lt 20 ]; then
344
-        echo $"Address:    $ZERONET_ID_ADDRESS" >> $INSTALL_LOG
345
-        echo $"Public key: $ZERONET_ID_PRIVATE_KEY" >> $INSTALL_LOG
346
-        echo $'Unable to create ZeroID private key' >> $INSTALL_LOG
347
-        exit 87356
348
-    fi
349
-
350
-    if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS" ]; then
351
-        echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS" >> $INSTALL_LOG
352
-        exit 378434
353
-    fi
354
-
355
-    echo $"ZeroID address:     $ZERONET_ID_ADDRESS"
356
-    echo $"ZeroID private key: $ZERONET_ID_PRIVATE_KEY"
357
-    cp -r $MESH_INSTALL_DIR/zeronet/ZeroID/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS
358
-    # TODO
359
-    sed -i "s///g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS/content.json
360
-    python zeronet.py siteSign $ZERONET_ID_ADDRESS $ZERONET_ID_PRIVATE_KEY --inner_path data/users/content.json
361
-
362
-    # Add an avahi service
363
-    echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-id.service
364
-    echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-id.service
365
-    echo '<service-group>' >> /tmp/zeronet-id.service
366
-    echo '  <name replace-wildcards="yes">%h ZeroNet ID Service</name>' >> /tmp/zeronet-id.service
367
-    echo '  <service>' >> /tmp/zeronet-id.service
368
-    echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-id.service
369
-    echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-id.service
370
-    echo "    <txt-record>$ZERONET_URL/$ZERONET_ID_ADDRESS</txt-record>" >> /tmp/zeronet-id.service
371
-    echo '  </service>' >> /tmp/zeronet-id.service
372
-    echo '</service-group>' >> /tmp/zeronet-id.service
373
-    sudo cp /tmp/zeronet-id.service /etc/avahi/services/zeronet-id.service
374
-
375
-    if [ ! -d /home/${MY_USERNAME}/.config/zeronet ]; then
376
-        mkdir -p /home/${MY_USERNAME}/.config/zeronet
377
-        chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config
378
-    fi
379
-    echo "$ZERONET_URL/$ZERONET_ID_ADDRESS" > /home/${MY_USERNAME}/.config/zeronet/myzeroid
380
-
381
-    sed -i "s|ZeroID address.*|ZeroID address: $ZERONET_ID_ADDRESS|g" /home/${MY_USERNAME}/README
382
-    sed -i "s|ZeroID private key.*|ZeroID private key: $ZERONET_ID_PRIVATE_KEY|g" /home/${MY_USERNAME}/README
383
-
384
-    if [ -d ${MESH_INSTALL_DIR}/zeronet ]; then
385
-        chown -R zeronet:zeronet ${MESH_INSTALL_DIR}/zeronet
386
-    fi
387
-
388
-    echo $'Update of ZeroID completed' >> $INSTALL_LOG
392
+	if [ -f $MESH_INSTALL_COMPLETED ]; then
393
+		remove_zeronet_id
394
+	fi
395
+	echo $'Updating ZeroID' >> $INSTALL_LOG
396
+
397
+	cd $MESH_INSTALL_DIR/zeronet
398
+	python zeronet.py --batch siteCreate 2> $MESH_INSTALL_DIR/zeronet/zeroid.txt
399
+	if [ ! -f $MESH_INSTALL_DIR/zeronet/zeroid.txt ]; then
400
+		echo $'Unable to create ZeroID' >> $INSTALL_LOG
401
+		exit 47962
402
+	fi
403
+	zeroid_address=$(cat $MESH_INSTALL_DIR/zeronet/zeroid.txt | grep "Site address" | awk -F ':' '{print $2}')
404
+	zeroid_private_key=$(cat $MESH_INSTALL_DIR/zeronet/zeroid.txt | grep "Site private key" | awk -F ':' '{print $2}')
405
+	ZERONET_ID_ADDRESS=${zeroid_address//[[:blank:]]/}
406
+	ZERONET_ID_PRIVATE_KEY=${zeroid_private_key//[[:blank:]]/}
407
+
408
+	if [ ${#ZERONET_ID_ADDRESS} -lt 20 ]; then
409
+		echo $"Address:    $ZERONET_ID_ADDRESS" >> $INSTALL_LOG
410
+		echo $"Public key: $ZERONET_ID_PRIVATE_KEY" >> $INSTALL_LOG
411
+		echo $'Unable to create ZeroID address' >> $INSTALL_LOG
412
+		exit 76352
413
+	fi
414
+
415
+	if [ ${#ZERONET_ID_PRIVATE_KEY} -lt 20 ]; then
416
+		echo $"Address:    $ZERONET_ID_ADDRESS" >> $INSTALL_LOG
417
+		echo $"Public key: $ZERONET_ID_PRIVATE_KEY" >> $INSTALL_LOG
418
+		echo $'Unable to create ZeroID private key' >> $INSTALL_LOG
419
+		exit 87356
420
+	fi
421
+
422
+	if [ ! -d "$MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS" ]; then
423
+		echo $"Unable to find site directory: $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS" >> $INSTALL_LOG
424
+		exit 378434
425
+	fi
426
+
427
+	echo $"ZeroID address:     $ZERONET_ID_ADDRESS"
428
+	echo $"ZeroID private key: $ZERONET_ID_PRIVATE_KEY"
429
+	cp -r $MESH_INSTALL_DIR/zeronet/ZeroID/* $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS
430
+	# TODO
431
+	sed -i "s///g" $MESH_INSTALL_DIR/zeronet/data/$ZERONET_ID_ADDRESS/content.json
432
+	python zeronet.py siteSign $ZERONET_ID_ADDRESS $ZERONET_ID_PRIVATE_KEY --inner_path data/users/content.json
433
+
434
+	# Add an avahi service
435
+	echo '<?xml version="1.0" standalone="no"?><!--*-nxml-*-->' > /tmp/zeronet-id.service
436
+	echo '<!DOCTYPE service-group SYSTEM "avahi-service.dtd">' >> /tmp/zeronet-id.service
437
+	echo '<service-group>' >> /tmp/zeronet-id.service
438
+	echo '  <name replace-wildcards="yes">%h ZeroNet ID Service</name>' >> /tmp/zeronet-id.service
439
+	echo '  <service>' >> /tmp/zeronet-id.service
440
+	echo '    <type>_zeronet._udp</type>' >> /tmp/zeronet-id.service
441
+	echo "    <port>$ZERONET_PORT</port>" >> /tmp/zeronet-id.service
442
+	echo "    <txt-record>$ZERONET_URL/$ZERONET_ID_ADDRESS</txt-record>" >> /tmp/zeronet-id.service
443
+	echo '  </service>' >> /tmp/zeronet-id.service
444
+	echo '</service-group>' >> /tmp/zeronet-id.service
445
+	sudo cp /tmp/zeronet-id.service /etc/avahi/services/zeronet-id.service
446
+
447
+	if [ ! -d /home/${MY_USERNAME}/.config/zeronet ]; then
448
+		mkdir -p /home/${MY_USERNAME}/.config/zeronet
449
+		chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.config
450
+	fi
451
+	echo "$ZERONET_URL/$ZERONET_ID_ADDRESS" > /home/${MY_USERNAME}/.config/zeronet/myzeroid
452
+
453
+	sed -i "s|ZeroID address.*|ZeroID address: $ZERONET_ID_ADDRESS|g" /home/${MY_USERNAME}/README
454
+	sed -i "s|ZeroID private key.*|ZeroID private key: $ZERONET_ID_PRIVATE_KEY|g" /home/${MY_USERNAME}/README
455
+
456
+	if [ -d ${MESH_INSTALL_DIR}/zeronet ]; then
457
+		chown -R zeronet:zeronet ${MESH_INSTALL_DIR}/zeronet
458
+	fi
459
+
460
+	echo $'Update of ZeroID completed' >> $INSTALL_LOG
389 461
 }
390 462
 
391 463
 function configure_toxcore {
392
-    echo $'Configuring toxcore' >> $INSTALL_LOG
393
-
394
-    TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
395
-
396
-    echo $'Enabling toxcore daemon' >> $INSTALL_LOG
397
-    systemctl enable tox-bootstrapd.service
398
-    echo $'Regenerating Tox bootstrap node keys' >> $INSTALL_LOG
399
-    systemctl stop tox-bootstrapd.service
400
-    if [ -f /var/lib/tox-bootstrapd/keys ]; then
401
-        rm /var/lib/tox-bootstrapd/keys
402
-    fi
403
-    systemctl start tox-bootstrapd.service
404
-    # sleep for a while so that the tox keys can be generated
405
-    sleep 30
406
-    TOX_BOOTSTRAP_ID_FILE=/var/lib/tox-bootstrapd/pubkey.txt
407
-    TOX_PUBLIC_KEY=$(cat /var/log/syslog | grep tox | grep "Public Key" | awk -F ' ' '{print $8}' | tail -1)
408
-    if [ ${#TOX_PUBLIC_KEY} -lt 30 ]; then
409
-        echo $'WARNING: Could not obtain the tox node public key' >> $INSTALL_LOG
410
-        exit 46362
411
-    fi
412
-
413
-    # save the public key for later reference
414
-    echo "$TOX_PUBLIC_KEY" > $TOX_BOOTSTRAP_ID_FILE
415
-    echo $'Configured toxcore' >> $INSTALL_LOG
416
-
417
-    echo $'Clearing toxic client settings' >> $INSTALL_LOG
418
-    if [ -d /home/${MY_USERNAME}/.config/tox ]; then
419
-        rm -rf /home/${MY_USERNAME}/.config/tox
420
-    fi
421
-    echo $'toxic client configured' >> $INSTALL_LOG
464
+	echo $'Configuring toxcore' >> $INSTALL_LOG
465
+
466
+	TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
467
+
468
+	echo $'Enabling toxcore daemon' >> $INSTALL_LOG
469
+	systemctl enable tox-bootstrapd.service
470
+	echo $'Regenerating Tox bootstrap node keys' >> $INSTALL_LOG
471
+	systemctl stop tox-bootstrapd.service
472
+	if [ -f /var/lib/tox-bootstrapd/keys ]; then
473
+		rm /var/lib/tox-bootstrapd/keys
474
+	fi
475
+	systemctl start tox-bootstrapd.service
476
+	# sleep for a while so that the tox keys can be generated
477
+	sleep 30
478
+	TOX_BOOTSTRAP_ID_FILE=/var/lib/tox-bootstrapd/pubkey.txt
479
+	TOX_PUBLIC_KEY=$(cat /var/log/syslog | grep tox | grep "Public Key" | awk -F ' ' '{print $8}' | tail -1)
480
+	if [ ${#TOX_PUBLIC_KEY} -lt 30 ]; then
481
+		echo $'WARNING: Could not obtain the tox node public key' >> $INSTALL_LOG
482
+		exit 46362
483
+	fi
484
+
485
+	# save the public key for later reference
486
+	echo "$TOX_PUBLIC_KEY" > $TOX_BOOTSTRAP_ID_FILE
487
+	echo $'Configured toxcore' >> $INSTALL_LOG
488
+
489
+	echo $'Clearing toxic client settings' >> $INSTALL_LOG
490
+	if [ -d /home/${MY_USERNAME}/.config/tox ]; then
491
+		rm -rf /home/${MY_USERNAME}/.config/tox
492
+	fi
493
+	echo $'toxic client configured' >> $INSTALL_LOG
422 494
 }
423 495
 
424 496
 function disable_password_logins {
425
-    if [ ! -d /home/$DEFAULT_USERNAME ]; then
426
-        echo $"Home directory for $DEFAULT_USERNAME not found"
427
-        exit 3682572
428
-    fi
429
-
430
-    # create an authorized_keys file
431
-    if [ ! -d /home/$DEFAULT_USERNAME/.ssh ]; then
432
-        mkdir -p /home/$DEFAULT_USERNAME/.ssh
433
-    fi
434
-    if [ ! -f /home/$DEFAULT_USERNAME/.ssh/authorized_keys ]; then
435
-        touch /home/$DEFAULT_USERNAME/.ssh/authorized_keys
436
-    fi
437
-    chown -R $DEFAULT_USERNAME:$DEFAULT_USERNAME /home/$DEFAULT_USERNAME/.ssh
438
-
439
-    # disable password logins
440
-    sed -i 's|#PasswordAuthentication.*|PasswordAuthentication no|g' /etc/ssh/sshd_config
441
-    sed -i 's|PasswordAuthentication.*|PasswordAuthentication no|g' /etc/ssh/sshd_config
497
+	if [ ! -d /home/$DEFAULT_USERNAME ]; then
498
+		echo $"Home directory for $DEFAULT_USERNAME not found"
499
+		exit 3682572
500
+	fi
501
+
502
+	# create an authorized_keys file
503
+	if [ ! -d /home/$DEFAULT_USERNAME/.ssh ]; then
504
+		mkdir -p /home/$DEFAULT_USERNAME/.ssh
505
+	fi
506
+	if [ ! -f /home/$DEFAULT_USERNAME/.ssh/authorized_keys ]; then
507
+		touch /home/$DEFAULT_USERNAME/.ssh/authorized_keys
508
+	fi
509
+	chown -R $DEFAULT_USERNAME:$DEFAULT_USERNAME /home/$DEFAULT_USERNAME/.ssh
510
+
511
+	# disable password logins
512
+	sed -i 's|#PasswordAuthentication.*|PasswordAuthentication no|g' /etc/ssh/sshd_config
513
+	sed -i 's|PasswordAuthentication.*|PasswordAuthentication no|g' /etc/ssh/sshd_config
442 514
 }
443 515
 
444 516
 function disable_screen_lock {
445
-    dconf write /org/gnome/desktop/screensaver/lock-enabled false
517
+	dconf write /org/gnome/desktop/screensaver/lock-enabled false
446 518
 }
447 519
 
448 520
 function enable_batman_daemon {
449
-    systemctl enable batman
450
-    systemctl daemon-reload
521
+	systemctl enable batman
522
+	systemctl daemon-reload
451 523
 }
452 524
 
453
-if [ -f /root/.initial_mesh_setup ]; then
454
-    if [ $1 ]; then
455
-        MY_USERNAME=$1
456
-    fi
457
-
458
-    # sleep in order to allow other daemons to start up
459
-    sleep 15
460
-
461
-    # clear the install log
462
-    if [ -f $INSTALL_LOG ]; then
463
-        rm $INSTALL_LOG
464
-    fi
465
-
466
-    echo $'Beginning mesh node setup' >> $INSTALL_LOG
467
-    enable_batman_daemon
468
-    change_avahi_name
469
-    regenerate_ssh_host_keys
470
-    configure_zeronet_blog
471
-    configure_zeronet_mail
472
-    configure_zeronet_forum
473
-    configure_zeronet_id
474
-    configure_toxcore
475
-    configure_zeronet
476
-    disable_password_logins
477
-    disable_screen_lock
478
-
479
-    rm /root/.initial_mesh_setup
480
-    systemctl disable mesh-setup.service
481
-    touch /root/.mesh_setup_completed
482
-    echo $'Mesh node setup complete. Rebooting...' >> $INSTALL_LOG
483
-    reboot
525
+# whether to reset the identity
526
+if [ $2 ]; then
527
+	if [[ "$2" == $"new"* ]]; then
528
+		if [ ! -f $MESH_INSTALL_SETUP ]; then
529
+			touch $MESH_INSTALL_SETUP
530
+		fi
531
+	fi
532
+fi
533
+
534
+if [ -f $MESH_INSTALL_SETUP ]; then
535
+	if [ $1 ]; then
536
+		MY_USERNAME=$1
537
+	fi
538
+
539
+	# sleep in order to allow other daemons to start up
540
+	sleep 15
541
+
542
+	# clear the install log
543
+	if [ -f $INSTALL_LOG ]; then
544
+		rm $INSTALL_LOG
545
+	fi
546
+
547
+	echo $'Beginning mesh node setup' >> $INSTALL_LOG
548
+	enable_batman_daemon
549
+	change_avahi_name
550
+	regenerate_ssh_host_keys
551
+	configure_zeronet_blog
552
+	configure_zeronet_mail
553
+	configure_zeronet_forum
554
+	configure_zeronet_id
555
+	configure_toxcore
556
+	configure_zeronet
557
+	disable_password_logins
558
+	disable_screen_lock
559
+
560
+	rm $MESH_INSTALL_SETUP
561
+	systemctl disable mesh-setup.service
562
+	touch $MESH_INSTALL_COMPLETED
563
+	echo $'Mesh node setup complete. Rebooting...' >> $INSTALL_LOG
564
+	reboot
484 565
 fi
485 566
 
486 567
 exit 0

+ 50
- 0
src/freedombone-mesh-reset 파일 보기

@@ -0,0 +1,50 @@
1
+#!/bin/bash
2
+#
3
+# .---.                  .              .
4
+# |                      |              |
5
+# |--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-.
6
+# |    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-'
7
+# '    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'
8
+#
9
+#                    Freedom in the Cloud
10
+#
11
+# Resets the identity of a mesh user
12
+#
13
+# License
14
+# =======
15
+#
16
+# This program is free software: you can redistribute it and/or modify
17
+# it under the terms of the GNU Affero General Public License as published by
18
+# the Free Software Foundation, either version 3 of the License, or
19
+# (at your option) any later version.
20
+#
21
+# This program is distributed in the hope that it will be useful,
22
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24
+# GNU Affero General Public License for more details.
25
+#
26
+# You should have received a copy of the GNU Affero General Public License
27
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
28
+
29
+PROJECT_NAME='freedombone'
30
+
31
+export TEXTDOMAIN=${PROJECT_NAME}-mesh-reset
32
+export TEXTDOMAINDIR="/usr/share/locale"
33
+
34
+dialog --title $"New Identity" \
35
+	   --backtitle $"Freedombone Mesh" \
36
+	   --defaultno \
37
+	   --yesno $"\nDo you want to reset your identity? This will reset ALL data for this peer, and you will not be able to recover it." 8 60
38
+sel=$?
39
+case $sel in
40
+	0) sudo pkill qtox
41
+	   sudo pkill firefox
42
+	   sudo pkill iceweasel
43
+	   sudo ${PROJECT_NAME}-image-mesh $USER new
44
+	   sudo batman restart
45
+	   dialog --title $"New Identity" \
46
+			  --msgbox $"You now have a new identity" 6 40
47
+	   ;;
48
+esac
49
+
50
+exit 0