Ver código fonte

Generic image setup

Bob Mottram 9 anos atrás
pai
commit
ae7169e88f

BIN
man/freedombone-image.1.gz Ver arquivo


+ 9
- 1
src/freedombone-image Ver arquivo

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

+ 31
- 0
src/freedombone-image-customise Ver arquivo

50
 # Optional ssh public key to allow
50
 # Optional ssh public key to allow
51
 SSH_PUBKEY="no"
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
 enable_eatmydata_override() {
56
 enable_eatmydata_override() {
54
     chroot $rootdir apt-get install --no-install-recommends -y eatmydata
57
     chroot $rootdir apt-get install --no-install-recommends -y eatmydata
55
     if [ -x $rootdir/usr/bin/eatmydata ] && \
58
     if [ -x $rootdir/usr/bin/eatmydata ] && \
181
     echo "$MY_USERNAME  ALL=(ALL) ALL" >> $rootdir/etc/sudoers
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
 continue_installation() {
214
 continue_installation() {
185
     # If a configuration file exists then run with it
215
     # If a configuration file exists then run with it
186
     # otherwise the interactive installer can be used
216
     # otherwise the interactive installer can be used
298
 configure_ssh
328
 configure_ssh
299
 configure_networking
329
 configure_networking
300
 admin_user_sudo
330
 admin_user_sudo
331
+create_generic_image
301
 continue_installation
332
 continue_installation
302
 
333
 
303
 cd /
334
 cd /

+ 2
- 0
src/freedombone-image-make Ver arquivo

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