Procházet zdrojové kódy

Generic image setup

Bob Mottram před 9 roky
rodič
revize
ae7169e88f

binární
man/freedombone-image.1.gz Zobrazit soubor


+ 9
- 1
src/freedombone-image Zobrazit soubor

@@ -65,6 +65,9 @@ SSH_PUBKEY="no"
65 65
 # interactive mode
66 66
 INTERACTIVE="no"
67 67
 
68
+# Whether this is a generic image for mass redistribution on the interwebs
69
+GENERIC_IMAGE="no"
70
+
68 71
 while [[ $# > 1 ]]
69 72
 do
70 73
 key="$1"
@@ -130,6 +133,10 @@ case $key in
130 133
     shift
131 134
     INTERACTIVE="$1"
132 135
     ;;
136
+    -g|--generic)
137
+    shift
138
+    GENERIC_IMAGE="$1"
139
+    ;;
133 140
     *)
134 141
     # unknown option
135 142
     ;;
@@ -182,7 +189,8 @@ make $IMAGE_TYPE \
182 189
     PROJECT_NAME="$PROJECT_NAME" \
183 190
     CONFIG_FILENAME="$CONFIG_FILENAME" \
184 191
     IMAGE_SIZE="$IMAGE_SIZE" \
185
-    SSH_PUBKEY="$SSH_PUBKEY"
192
+    SSH_PUBKEY="$SSH_PUBKEY" \
193
+    GENERIC_IMAGE="$GENERIC_IMAGE"
186 194
 
187 195
 shopt -s nullglob
188 196
 imgfiles=(build/${PROJECT_NAME}*.img)

+ 31
- 0
src/freedombone-image-customise Zobrazit soubor

@@ -50,6 +50,9 @@ CONFIG_FILENAME=
50 50
 # Optional ssh public key to allow
51 51
 SSH_PUBKEY="no"
52 52
 
53
+# Whether this is a generic image for mass redistribution on the interwebs
54
+GENERIC_IMAGE="no"
55
+
53 56
 enable_eatmydata_override() {
54 57
     chroot $rootdir apt-get install --no-install-recommends -y eatmydata
55 58
     if [ -x $rootdir/usr/bin/eatmydata ] && \
@@ -181,6 +184,33 @@ admin_user_sudo() {
181 184
     echo "$MY_USERNAME  ALL=(ALL) ALL" >> $rootdir/etc/sudoers
182 185
 }
183 186
 
187
+create_generic_image() {
188
+    if [[ $GENERIC_IMAGE == "no" ]]; then
189
+		return
190
+	fi
191
+    # Don't install any configuration. This will be a base system
192
+    CONFIG_FILENAME=
193
+	# The presence of this file indicates that the initial
194
+	# setup has not yet been completed
195
+    touch $rootdir/home/$MY_USERNAME/.initial_setup
196
+
197
+   
198
+	cat >> /home/$MY_USERNAME/.bashrc <<EOF
199
+if [ -f ~/.initial_setup ]; then
200
+    clear
201
+    echo '>>> Freedombone system initial setup <<<'
202
+    echo ''
203
+    echo 'The first thing you need to do is to change your password, otherwise'
204
+    echo 'your system will be insecure. Your password should be at least 10'
205
+    echo 'characters long and contain letters and numbers. Do this now:'
206
+    passwd
207
+    sudo su
208
+    freedombone menuconfig
209
+    rm ~/.initial_setup
210
+fi
211
+EOF
212
+}
213
+
184 214
 continue_installation() {
185 215
     # If a configuration file exists then run with it
186 216
     # otherwise the interactive installer can be used
@@ -298,6 +328,7 @@ chroot "$rootdir" apt-get update
298 328
 configure_ssh
299 329
 configure_networking
300 330
 admin_user_sudo
331
+create_generic_image
301 332
 continue_installation
302 333
 
303 334
 cd /

+ 2
- 0
src/freedombone-image-make Zobrazit soubor

@@ -45,6 +45,7 @@ export NAMESERVER2
45 45
 export PROJECT_NAME
46 46
 export CONFIG_FILENAME
47 47
 export SSH_PUBKEY
48
+export GENERIC_IMAGE
48 49
 
49 50
 # Locate vmdebootstrap program fetched in Makefile
50 51
 basedir=`pwd`
@@ -144,6 +145,7 @@ sudo sed -i "s|NAMESERVER2=.*|NAMESERVER2=${NAMESERVER1}|g" $TEMP_CUSTOMISE
144 145
 sudo sed -i "s|PROJECT_NAME=.*|PROJECT_NAME=${PROJECT_NAME}|g" $TEMP_CUSTOMISE
145 146
 sudo sed -i "s|CONFIG_FILENAME=.*|CONFIG_FILENAME=${CONFIG_FILENAME}|g" $TEMP_CUSTOMISE
146 147
 sudo sed -i "s|SSH_PUBKEY=.*|SSH_PUBKEY=${SSH_PUBKEY}|g" $TEMP_CUSTOMISE
148
+sudo sed -i "s|GENERIC_IMAGE=.*|GENERIC_IMAGE=${GENERIC_IMAGE}|g" $TEMP_CUSTOMISE
147 149
 
148 150
 echo "starting $VMDEBOOTSTRAP"
149 151
 # Run vmdebootstrap script to create image