|
@@ -30,17 +30,21 @@
|
30
|
30
|
|
31
|
31
|
VARIANTS='mesh'
|
32
|
32
|
|
|
33
|
+TAHOELAFS_REPO="https://github.com/tahoe-lafs/tahoe-lafs"
|
|
34
|
+TAHOELAFS_COMMIT='30b421d48b3d1dae2ef507bf27a1f3816300cd92'
|
|
35
|
+
|
33
|
36
|
TAHOELAFS_PORT=50213
|
34
|
37
|
TAHOELAFS_WEB_PORT=3456
|
35
|
38
|
TAHOELAFS_STORAGE_SPACE=1G
|
36
|
39
|
TAHOELAFS_SHARED_DIR='Shared'
|
|
40
|
+TAHOE_COMMAND="cd /var/lib/tahoelafs && venv/bin/tahoe"
|
37
|
41
|
|
38
|
42
|
function reconfigure_tahoelafs {
|
39
|
43
|
for d in /home/*/ ; do
|
40
|
44
|
USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
|
41
|
45
|
if [[ $USERNAME != "git" && $USERNAME != "mirrors" && $USERNAME != "sync" ]]; then
|
42
|
46
|
if [ -d /home/$USERNAME/.tahoe ]; then
|
43
|
|
- su -c 'tahoe stop' - $USERNAME
|
|
47
|
+ su -c "$TAHOE_COMMAND stop" - $USERNAME
|
44
|
48
|
rm -rf /home/$USERNAME/.tahoe
|
45
|
49
|
fi
|
46
|
50
|
|
|
@@ -48,7 +52,7 @@ function reconfigure_tahoelafs {
|
48
|
52
|
rm -rf /home/$USERNAME/${TAHOELAFS_SHARED_DIR}
|
49
|
53
|
fi
|
50
|
54
|
|
51
|
|
- su -c 'tahoe create-node' - $USERNAME
|
|
55
|
+ su -c "cd $TAHOE_COMMAND create-node" - $USERNAME
|
52
|
56
|
|
53
|
57
|
if [ ! -d /home/$USERNAME/.tahoe ]; then
|
54
|
58
|
exit 63722
|
|
@@ -87,12 +91,13 @@ function reconfigure_tahoelafs {
|
87
|
91
|
echo '[helper]' >> $TAHOELAFS_CONFIG
|
88
|
92
|
echo 'enabled = false' >> $TAHOELAFS_CONFIG
|
89
|
93
|
echo '' >> $TAHOELAFS_CONFIG
|
90
|
|
- echo '[drop_upload]' >> $TAHOELAFS_CONFIG
|
|
94
|
+ echo '[magic_folder]' >> $TAHOELAFS_CONFIG
|
91
|
95
|
echo 'enabled = true' >> $TAHOELAFS_CONFIG
|
92
|
|
- echo "local.directory = ~/${TAHOELAFS_SHARED_DIR}" >> $TAHOELAFS_CONFIG
|
|
96
|
+ echo "local.directory = /home/${USERNAME}/${TAHOELAFS_SHARED_DIR}" >> $TAHOELAFS_CONFIG
|
93
|
97
|
chown $USERNAME:$USERNAME $TAHOELAFS_CONFIG
|
94
|
98
|
|
95
|
|
- su -c 'tahoe start' - $USERNAME
|
|
99
|
+ su -c "$TAHOE_COMMAND start" - $USERNAME
|
|
100
|
+ su -c "$TAHOE_COMMAND magic-folder create $HOSTNAME" - $USERNAME
|
96
|
101
|
fi
|
97
|
102
|
done
|
98
|
103
|
}
|
|
@@ -131,8 +136,15 @@ function remove_tahoelafs {
|
131
|
136
|
function_check save_firewall_settings
|
132
|
137
|
save_firewall_settings
|
133
|
138
|
|
134
|
|
- pip uninstall tahoe-lafs
|
135
|
|
- apt-get -y remove --purge tahoe-lafs
|
|
139
|
+ for d in /home/*/ ; do
|
|
140
|
+ USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
|
|
141
|
+ if [ -f /home/$USERNAME/.tahoe ]; then
|
|
142
|
+ su -c "$TAHOE_COMMAND stop" - $USERNAME
|
|
143
|
+ rm -rf /home/$USERNAME/.tahoe
|
|
144
|
+ fi
|
|
145
|
+ done
|
|
146
|
+
|
|
147
|
+ rm -rf /var/lib/tahoelafs
|
136
|
148
|
|
137
|
149
|
sed -i '/install_tahoelafs/d' $COMPLETION_FILE
|
138
|
150
|
sed -i '/configure_firewall_for_tahoelafs/d' $COMPLETION_FILE
|
|
@@ -152,6 +164,7 @@ function configure_firewall_for_tahoelafs {
|
152
|
164
|
|
153
|
165
|
function tahoelafs_update_script {
|
154
|
166
|
update_script_filename=$1
|
|
167
|
+ update_script_type=$2
|
155
|
168
|
|
156
|
169
|
echo '#!/bin/bash' > $update_script_filename
|
157
|
170
|
echo 'PEERS_FILE=$(mktemp /tmp/tahoelafs-peers.XXXXXX)' >> $update_script_filename
|
|
@@ -187,23 +200,44 @@ function tahoelafs_update_script {
|
187
|
200
|
echo ' if [ -f /home/$USERNAME/.tahoe/tahoe.cfg ]; then' >> $update_script_filename
|
188
|
201
|
echo ' if ! grep -q "introducer.furl = ${furl}" /home/$USERNAME/.tahoe/tahoe.cfg; then' >> $update_script_filename
|
189
|
202
|
echo ' sed -i "s|introducer.furl =.*|introducer.furl = ${furl}|g" /home/$USERNAME/.tahoe/tahoe.cfg' >> $update_script_filename
|
|
203
|
+
|
|
204
|
+ # change the nickname to the same as used by tox
|
|
205
|
+ if [ $update_script_type ]; then
|
|
206
|
+ if [[ $update_script_type == "mesh" ]]; then
|
|
207
|
+ echo ' TOX_USERNAME=$(toxid --showuser)' >> $update_script_filename
|
|
208
|
+ echo ' sed -i "s|nickname =.*|nickname = ${TOX_USERNAME}|g" /home/$USERNAME/.tahoe/tahoe.cfg' >> $update_script_filename
|
|
209
|
+ fi
|
|
210
|
+ fi
|
|
211
|
+
|
190
|
212
|
echo ' chown $USERNAME:$USERNAME /home/$USERNAME/.tahoe/tahoe.cfg' >> $update_script_filename
|
191
|
|
- echo ' su -c "tahoe restart" - $USERNAME' >> $update_script_filename
|
|
213
|
+ echo " su -c '$TAHOE_COMMAND restart' - \$USERNAME" >> $update_script_filename
|
192
|
214
|
echo ' fi' >> $update_script_filename
|
|
215
|
+
|
193
|
216
|
echo ' fi' >> $update_script_filename
|
194
|
217
|
echo 'done' >> $update_script_filename
|
195
|
218
|
echo '' >> $update_script_filename
|
|
219
|
+
|
196
|
220
|
echo 'exit 0' >> $update_script_filename
|
197
|
221
|
chmod +x $update_script_filename
|
198
|
222
|
}
|
199
|
223
|
|
200
|
224
|
function mesh_install_tahoelafs {
|
201
|
|
- chroot "$rootdir" apt-get -y install python-pip tahoe-lafs
|
202
|
|
- chroot "$rootdir" pip install tahoe-lafs
|
203
|
|
- chroot "$rootdir" su -c 'tahoe create-client' - $MY_USERNAME
|
204
|
|
- if [ ! -d $rootdir/home/$MY_USERNAME/.tahoe ]; then
|
205
|
|
- exit 63722
|
206
|
|
- fi
|
|
225
|
+ chroot "$rootdir" apt-get -y install build-essential python-pip python-dev
|
|
226
|
+ chroot "$rootdir" apt-get -y install libffi-dev libssl-dev python-virtualenv
|
|
227
|
+
|
|
228
|
+ git clone $TAHOELAFS_REPO $rootdir/var/lib/tahoelafs
|
|
229
|
+ cd $rootdir/var/lib/tahoelafs
|
|
230
|
+ git checkout $TAHOELAFS_COMMIT -b $TAHOELAFS_COMMIT
|
|
231
|
+
|
|
232
|
+ cat <<EOF > $rootdir/root/install_tahoelafs
|
|
233
|
+cd /var/lib/tahoelafs
|
|
234
|
+virtualenv venv
|
|
235
|
+venv/bin/pip install --editable .
|
|
236
|
+EOF
|
|
237
|
+ chroot "$rootdir" chmod +x /root/install_tahoelafs
|
|
238
|
+ chroot "$rootdir" /root/install_tahoelafs
|
|
239
|
+ chroot "$rootdir" rm /root/install_tahoelafs
|
|
240
|
+
|
207
|
241
|
tahoelafs_update_script $rootdir/usr/bin/update-tahoelafs
|
208
|
242
|
|
209
|
243
|
if ! grep -q "update-tahoelafs" $rootdir/etc/crontab; then
|
|
@@ -221,14 +255,19 @@ function install_tahoelafs {
|
221
|
255
|
return
|
222
|
256
|
fi
|
223
|
257
|
|
224
|
|
- apt-get -y install python-pip tahoe-lafs
|
225
|
|
- pip install tahoe-lafs
|
|
258
|
+ apt-get -y install build-essential python-pip python-dev libffi-dev libssl-dev python-virtualenv
|
|
259
|
+
|
|
260
|
+ git_clone $TAHOELAFS_REPO /var/lib/tahoelafs
|
|
261
|
+ cd /var/lib/tahoelafs
|
|
262
|
+ git checkout $TAHOELAFS_COMMIT -b $TAHOELAFS_COMMIT
|
|
263
|
+ virtualenv venv
|
|
264
|
+ venv/bin/pip install --editable .
|
226
|
265
|
configure_firewall_for_tahoelafs
|
227
|
266
|
reconfigure_tahoelafs
|
228
|
267
|
tahoelafs_update_script /usr/bin/update-tahoelafs
|
229
|
268
|
|
230
|
269
|
function_check cron_add_mins
|
231
|
|
- cron_add_mins 1 '/usr/bin/update-tahoelafs 2> /dev/null'
|
|
270
|
+ cron_add_mins 1 "/usr/bin/update-tahoelafs 2> /dev/null"
|
232
|
271
|
|
233
|
272
|
echo 'install_tahoelafs' >> $COMPLETION_FILE
|
234
|
273
|
}
|