Browse Source

Set the initial admin username

Bob Mottram 9 years ago
parent
commit
970e3dfca1
1 changed files with 52 additions and 13 deletions
  1. 52
    13
      src/freedombone-config

+ 52
- 13
src/freedombone-config View File

33
 
33
 
34
 PROJECT_NAME='freedombone'
34
 PROJECT_NAME='freedombone'
35
 
35
 
36
+# username created by default within a debian image
37
+DEFAULT_IMAGE_USERNAME='fbone'
38
+
36
 export TEXTDOMAIN=${PROJECT_NAME}-config
39
 export TEXTDOMAIN=${PROJECT_NAME}-config
37
 export TEXTDOMAINDIR="/usr/share/locale"
40
 export TEXTDOMAINDIR="/usr/share/locale"
38
 
41
 
647
         fi
650
         fi
648
     fi
651
     fi
649
 
652
 
650
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" && $DEFAULT_DOMAIN_NAME && -d /home/$DEFAULT_DOMAIN_NAME ]]; then
651
-        MY_USERNAME=$DEFAULT_DOMAIN_NAME
653
+    if [ -d /home/$DEFAULT_IMAGE_USERNAME ]; then
654
+        # when installing from an image which comes with a known default user account
655
+        selected_username=
656
+        while [ ! $selected_username ]
657
+        do
658
+            if [ ! $selected_username ]; then
659
+                selected_username=$(grep 'MY_USERNAME' temp.cfg | awk -F '=' '{print $2}')
660
+            fi
661
+            data=$(tempfile 2>/dev/null)
662
+            trap "rm -f $data" 0 1 2 5 15
663
+            dialog --backtitle $"Freedombone Configuration" \
664
+                   --title $"Username" \
665
+                   --inputbox $"Set your username for the system\n\nYour username should not contain any spaces" 12 60 "$selected_username" 2> $data
666
+            sel=$?
667
+            case $sel in
668
+                0) possible_username=$(cat $data)
669
+                   selected_username=
670
+                   if [[ $possible_username != *' '* && $possible_username != *'/'* && $possible_username != *'\'* && $possible_username != *'*'* ]]; then
671
+                       if [ $possible_username ]; then
672
+                           if [ ${#possible_username} -gt 1 ]; then
673
+                               if [[ $possible_username != $DEFAULT_IMAGE_USERNAME ]]; then
674
+                                   MY_USERNAME=$(cat $data)
675
+                                   usermod -l $MY_USERNAME $DEFAULT_IMAGE_USERNAME
676
+                                   usermod -d /home/$MY_USERNAME -m $MY_USERNAME
677
+                                   break
678
+                               fi
679
+                           fi
680
+                       fi
681
+                   fi
682
+                   ;;
683
+                1) exit 1;;
684
+                255) exit 1;;
685
+            esac
686
+        done
652
     else
687
     else
653
-        data=$(tempfile 2>/dev/null)
654
-        trap "rm -f $data" 0 1 2 5 15
655
-        dialog --title $"Select the user account to install as" \
656
-               --backtitle $"Freedombone Configuration" \
657
-               --dselect "/home/$(grep 'MY_USERNAME' temp.cfg | awk -F '=' '{print $2}')" 14 40 2> $data
658
-        sel=$?
659
-        case $sel in
660
-            0) MY_USERNAME=$(cat $data | awk -F '/' '{print $3}');;
661
-            1) exit 1;;
662
-            255) exit 1;;
663
-        esac
688
+        if [[ $SYSTEM_TYPE == "$VARIANT_MESH" && $DEFAULT_DOMAIN_NAME && -d /home/$DEFAULT_DOMAIN_NAME ]]; then
689
+            MY_USERNAME=$DEFAULT_DOMAIN_NAME
690
+        else
691
+            data=$(tempfile 2>/dev/null)
692
+            trap "rm -f $data" 0 1 2 5 15
693
+            dialog --title $"Select the user account to install as" \
694
+                   --backtitle $"Freedombone Configuration" \
695
+                   --dselect "/home/$(grep 'MY_USERNAME' temp.cfg | awk -F '=' '{print $2}')" 14 40 2> $data
696
+            sel=$?
697
+            case $sel in
698
+                0) MY_USERNAME=$(cat $data | awk -F '/' '{print $3}');;
699
+                1) exit 1;;
700
+                255) exit 1;;
701
+            esac
702
+        fi
664
     fi
703
     fi
665
 
704
 
666
     if [ ! $MY_USERNAME ]; then
705
     if [ ! $MY_USERNAME ]; then