Browse Source

Mesh router setup

Bob Mottram 9 years ago
parent
commit
29bb1348f5
2 changed files with 46 additions and 10 deletions
  1. 30
    1
      src/freedombone-image-customise
  2. 16
    9
      src/freedombone-image-mesh

+ 30
- 1
src/freedombone-image-customise View File

215
     # Don't install any configuration. This will be a base system
215
     # Don't install any configuration. This will be a base system
216
     if [[ $VARIANT != "mesh" ]]; then
216
     if [[ $VARIANT != "mesh" ]]; then
217
         CONFIG_FILENAME=
217
         CONFIG_FILENAME=
218
+    else
219
+        touch $rootdir/root/.initial_mesh_setup
218
     fi
220
     fi
219
 
221
 
220
     # The presence of this file indicates that the initial
222
     # The presence of this file indicates that the initial
292
             echo "    ${PROJECT_NAME} menuconfig-onion" >> $rootdir/root/.bashrc
294
             echo "    ${PROJECT_NAME} menuconfig-onion" >> $rootdir/root/.bashrc
293
         fi
295
         fi
294
     else
296
     else
295
-        echo "    ${PROJECT_NAME}-image-mesh" >> $rootdir/root/.bashrc
297
+        echo 'echo ""'
296
     fi
298
     fi
297
     echo '    if [ "$?" = "0" ]; then' >> $rootdir/root/.bashrc
299
     echo '    if [ "$?" = "0" ]; then' >> $rootdir/root/.bashrc
298
     echo "        if [ -f ~/${PROJECT_NAME}-completed.txt ]; then" >> $rootdir/root/.bashrc
300
     echo "        if [ -f ~/${PROJECT_NAME}-completed.txt ]; then" >> $rootdir/root/.bashrc
359
     fi
361
     fi
360
 }
362
 }
361
 
363
 
364
+initialise_mesh() {
365
+    if [[ $VARIANT != "mesh" ]]; then
366
+        return
367
+    fi
368
+    MESH_SERVICE='mesh-setup.service'
369
+    MESH_SETUP_DAEMON=$rootdir/etc/systemd/system/$MESH_SERVICE
370
+
371
+    echo '[Unit]' > $MESH_SETUP_DAEMON
372
+    echo 'Description=Initial mesh router configuration' >> $MESH_SETUP_DAEMON
373
+    echo 'After=syslog.target' >> $MESH_SETUP_DAEMON
374
+    echo 'After=network.target' >> $MESH_SETUP_DAEMON
375
+    echo '[Service]' >> $MESH_SETUP_DAEMON
376
+    echo 'Type=simple' >> $MESH_SETUP_DAEMON
377
+    echo 'User=root' >> $MESH_SETUP_DAEMON
378
+    echo 'Group=root' >> $MESH_SETUP_DAEMON
379
+    echo 'WorkingDirectory=/root' >> $MESH_SETUP_DAEMON
380
+    echo "ExecStart=/usr/local/bin/${PROJECT_NAME}-image-mesh > /var/log/mesh-setup.log" >> $MESH_SETUP_DAEMON
381
+    echo '' >> $MESH_SETUP_DAEMON
382
+    echo 'TimeoutSec=99999' >> $MESH_SETUP_DAEMON
383
+    echo '' >> $MESH_SETUP_DAEMON
384
+    echo '[Install]' >> $MESH_SETUP_DAEMON
385
+    echo 'WantedBy=multi-user.target' >> $MESH_SETUP_DAEMON
386
+
387
+    chroot $rootdir systemctl enable $MESH_SERVICE
388
+}
389
+
362
 # Set to true/false to control if eatmydata is used during build
390
 # Set to true/false to control if eatmydata is used during build
363
 use_eatmydata=true
391
 use_eatmydata=true
364
 
392
 
470
 create_generic_image
498
 create_generic_image
471
 atheros_wifi
499
 atheros_wifi
472
 continue_installation
500
 continue_installation
501
+initialise_mesh
473
 
502
 
474
 cd /
503
 cd /
475
 echo $"info: killing leftover processes in chroot"
504
 echo $"info: killing leftover processes in chroot"

+ 16
- 9
src/freedombone-image-mesh View File

290
     fi
290
     fi
291
 }
291
 }
292
 
292
 
293
-if [ $1 ]; then
294
-    MY_USERNAME=$1
295
-fi
293
+if [ -f /root/.initial_mesh_setup ]; then
294
+    if [ $1 ]; then
295
+        MY_USERNAME=$1
296
+    fi
296
 
297
 
297
-regenerate_ssh_host_keys
298
-configure_zeronet_blog
299
-configure_zeronet_mail
300
-configure_zeronet_forum
301
-configure_tox
302
-change_avahi_name
298
+    regenerate_ssh_host_keys
299
+    configure_zeronet_blog
300
+    configure_zeronet_mail
301
+    configure_zeronet_forum
302
+    configure_tox
303
+    change_avahi_name
304
+
305
+    rm /root/.initial_mesh_setup
306
+    systemctl disable mesh-setup.service
307
+    touch /root/.mesh_setup_completed
308
+    reboot
309
+fi
303
 
310
 
304
 exit 0
311
 exit 0