Browse Source

Split mesh installs into two categories

Bob Mottram 9 years ago
parent
commit
a7ae622535
2 changed files with 74 additions and 28 deletions
  1. 8
    0
      src/freedombone
  2. 66
    28
      src/freedombone-config

+ 8
- 0
src/freedombone View File

@@ -507,12 +507,20 @@ function interactive_configuration {
507 507
           exit 63935
508 508
       fi
509 509
   fi
510
+  if [ -f /tmp/meshuserdevice ]; then
511
+      rm -f /tmp/meshuserdevice
512
+  fi
510 513
 
511 514
   freedombone-config \
512 515
       -f $CONFIGURATION_FILE \
513 516
       -w $FREEDOMBONE_WEBSITE \
514 517
       -b $FREEDOMBONE_BITMESSAGE \
515 518
       -m $MINIMUM_PASSWORD_LENGTH
519
+  if [ -f /tmp/meshuserdevice ]; then
520
+      # mesh network installation
521
+      rm -f /tmp/meshuserdevice
522
+      exit 0
523
+  fi
516 524
   if [ ! "$?" = "0" ]; then
517 525
       echo 'Command failed:'
518 526
       echo ''

+ 66
- 28
src/freedombone-config View File

@@ -52,6 +52,7 @@ VARIANT_SOCIAL="social"
52 52
 VARIANT_MEDIA="media"
53 53
 VARIANT_DEVELOPER="developer"
54 54
 VARIANT_MESH="mesh"
55
+VARIANT_MESH_USER="mesh-user"
55 56
 
56 57
 MY_USERNAME=
57 58
 DEFAULT_DOMAIN_NAME=
@@ -490,7 +491,7 @@ function interactive_configuration {
490 491
   data=$(tempfile 2>/dev/null)
491 492
   trap "rm -f $data" 0 1 2 5 15
492 493
   dialog --backtitle "Freedombone Configuration" \
493
-      --radiolist "Type of Installation:" 17 40 10 \
494
+      --radiolist "Type of Installation:" 18 40 11 \
494 495
       1 Full on \
495 496
       2 Writer off \
496 497
       3 Cloud off \
@@ -500,7 +501,8 @@ function interactive_configuration {
500 501
       7 Social off \
501 502
       8 Media off \
502 503
       9 Developer off \
503
-      10 Mesh off 2> $data
504
+      10 "Mesh (router)" off \
505
+      11 "Mesh (user device)" off 2> $data
504 506
   sel=$?
505 507
   case $sel in
506 508
       1) exit 1;;
@@ -517,10 +519,11 @@ function interactive_configuration {
517 519
       8) SYSTEM_TYPE=$VARIANT_MEDIA;;
518 520
       9) SYSTEM_TYPE=$VARIANT_DEVELOPER;;
519 521
       10) SYSTEM_TYPE=$VARIANT_MESH;;
522
+      11) SYSTEM_TYPE=$VARIANT_MESH_USER;;
520 523
   esac
521 524
   save_configuration_file
522 525
 
523
-  if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
526
+  if [[ $SYSTEM_TYPE == "$VARIANT_MESH" || $SYSTEM_TYPE == "$VARIANT_MESH_USER" ]]; then
524 527
       ENABLE_BATMAN="yes"
525 528
       ENABLE_CJDNS="no"
526 529
       ENABLE_BABEL="no"
@@ -556,31 +559,66 @@ function interactive_configuration {
556 559
       esac
557 560
       save_configuration_file
558 561
 
559
-      data=$(tempfile 2>/dev/null)
560
-      trap "rm -f $data" 0 1 2 5 15
561
-      dialog --backtitle "Freedombone Configuration" \
562
-          --inputbox "Give your mesh peer a name" 10 40 "$(grep 'DEFAULT_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
563
-      sel=$?
564
-      case $sel in
565
-          0) DEFAULT_DOMAIN_NAME=$(cat $data);;
566
-          1) exit 1;;
567
-          255) exit 1;;
568
-      esac
562
+      if [[ $SYSTEM_TYPE != "$VARIANT_MESH_USER" ]]; then
563
+          data=$(tempfile 2>/dev/null)
564
+          trap "rm -f $data" 0 1 2 5 15
565
+          dialog --backtitle "Freedombone Configuration" \
566
+                 --inputbox "Give your mesh peer a name" 10 40 "$(grep 'DEFAULT_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2> $data
567
+          sel=$?
568
+          case $sel in
569
+              0) DEFAULT_DOMAIN_NAME=$(cat $data);;
570
+              1) exit 1;;
571
+              255) exit 1;;
572
+          esac
573
+      else
574
+          DEFAULT_DOMAIN_NAME=$(hostname)
575
+      fi
569 576
       save_configuration_file
570 577
   fi
571 578
 
572
-  if [[ $ENABLE_BATMAN == "yes" ]]; then
573
-      data=$(tempfile 2>/dev/null)
574
-      trap "rm -f $data" 0 1 2 5 15
575
-      dialog --backtitle "Freedombone Configuration" \
576
-          --inputbox "Optionally register with an Access Point" 10 40 "$(grep 'BATMAN_CELLID' temp.cfg | awk -F '=' '{print $2}')" 2> $data
577
-      sel=$?
578
-      case $sel in
579
-          0) BATMAN_CELLID=$(cat $data);;
580
-          1) exit 1;;
581
-          255) exit 1;;
582
-      esac
583
-      save_configuration_file
579
+  #if [[ $ENABLE_BATMAN == "yes" ]]; then
580
+  #    data=$(tempfile 2>/dev/null)
581
+  #    trap "rm -f $data" 0 1 2 5 15
582
+  #    dialog --backtitle "Freedombone Configuration" \
583
+  #        --inputbox "Optionally register with an Access Point" 10 40 "$(grep 'BATMAN_CELLID' temp.cfg | awk -F '=' '{print $2}')" 2> $data
584
+  #    sel=$?
585
+  #    case $sel in
586
+  #        0) BATMAN_CELLID=$(cat $data);;
587
+  #        1) exit 1;;
588
+  #        255) exit 1;;
589
+  #    esac
590
+  #    save_configuration_file
591
+  #fi
592
+
593
+  if [[ $SYSTEM_TYPE == "$VARIANT_MESH_USER" ]]; then
594
+      freedombone-client
595
+      if [ "$?" = "0" ]; then
596
+          clear
597
+          echo ".---.                  .              .                   "
598
+          echo "|                      |              |                   "
599
+          echo "|--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-. "
600
+          echo "|    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-' "
601
+          echo "'    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'"
602
+          echo ''
603
+          echo 'Your system is now ready for connection to the mesh network'
604
+          echo ''
605
+          echo 'To connect to the network open a terminal and type:'
606
+          echo ''
607
+          echo '    meshweb'
608
+          echo ''
609
+          echo 'To disconnect from the mesh and return to the internet type:'
610
+          echo ''
611
+          echo '    sudo batman stop'
612
+          echo ''
613
+          echo 'To turn your system into a dedicated mesh peer you could add'
614
+          echo 'the meshweb command to your startup applications'
615
+          echo ''
616
+          touch /tmp/meshuserdevice
617
+          exit 0
618
+      else
619
+          echo 'Failed to fully install the mesh networking system'
620
+          exit 74589
621
+      fi
584 622
   fi
585 623
 
586 624
   if [[ $SYSTEM_TYPE == "$VARIANT_MESH" && $DEFAULT_DOMAIN_NAME && -d /home/$DEFAULT_DOMAIN_NAME ]]; then
@@ -635,9 +673,9 @@ function interactive_configuration {
635 673
   esac
636 674
   if [[ $INSTALLING_ON_BBB == "yes" ]]; then
637 675
       USB_DRIVE=/dev/sda1
638
-	  # here a short diffie-hellman key length is used, because otherwise creation of keys
639
-	  # becomes impractically long on the beaglebone.
640
-	  DH_KEYLENGTH=1024
676
+      # here a short diffie-hellman key length is used, because otherwise creation of keys
677
+      # becomes impractically long on the beaglebone.
678
+      DH_KEYLENGTH=1024
641 679
   fi
642 680
   save_configuration_file
643 681