From ae7169e88f80ac08c9da4ec10669242eeacaaa52 Mon Sep 17 00:00:00 2001 From: Bob Mottram <bob@robotics.uk.to> Date: Mon, 23 Nov 2015 10:33:45 +0000 Subject: [PATCH] Generic image setup --- man/freedombone-image.1.gz | Bin 1644 -> 1940 bytes src/freedombone-image | 10 +++++++++- src/freedombone-image-customise | 31 +++++++++++++++++++++++++++++++ src/freedombone-image-make | 2 ++ 4 files changed, 42 insertions(+), 1 deletion(-) diff --git a/man/freedombone-image.1.gz b/man/freedombone-image.1.gz index 4f48fa75713c1c635ceb938d4362bd49a3841cc8..4da57069f527691bdf1a2f1e139fe7e1e7b527bf 100644 GIT binary patch literal 1940 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 aD!lcZ%#Q=fz_FKSC4U3&!Vett5C8xiz0!36 literal 1644 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 diff --git a/src/freedombone-image b/src/freedombone-image index a34ea2a13..154548b5c 100755 --- a/src/freedombone-image +++ b/src/freedombone-image @@ -65,6 +65,9 @@ SSH_PUBKEY="no" # interactive mode INTERACTIVE="no" +# Whether this is a generic image for mass redistribution on the interwebs +GENERIC_IMAGE="no" + while [[ $# > 1 ]] do key="$1" @@ -130,6 +133,10 @@ case $key in shift INTERACTIVE="$1" ;; + -g|--generic) + shift + GENERIC_IMAGE="$1" + ;; *) # unknown option ;; @@ -182,7 +189,8 @@ make $IMAGE_TYPE \ PROJECT_NAME="$PROJECT_NAME" \ CONFIG_FILENAME="$CONFIG_FILENAME" \ IMAGE_SIZE="$IMAGE_SIZE" \ - SSH_PUBKEY="$SSH_PUBKEY" + SSH_PUBKEY="$SSH_PUBKEY" \ + GENERIC_IMAGE="$GENERIC_IMAGE" shopt -s nullglob imgfiles=(build/${PROJECT_NAME}*.img) diff --git a/src/freedombone-image-customise b/src/freedombone-image-customise index 8aa1eb8b7..a7d2b4a77 100755 --- a/src/freedombone-image-customise +++ b/src/freedombone-image-customise @@ -50,6 +50,9 @@ CONFIG_FILENAME= # Optional ssh public key to allow SSH_PUBKEY="no" +# Whether this is a generic image for mass redistribution on the interwebs +GENERIC_IMAGE="no" + enable_eatmydata_override() { chroot $rootdir apt-get install --no-install-recommends -y eatmydata if [ -x $rootdir/usr/bin/eatmydata ] && \ @@ -181,6 +184,33 @@ admin_user_sudo() { echo "$MY_USERNAME ALL=(ALL) ALL" >> $rootdir/etc/sudoers } +create_generic_image() { + if [[ $GENERIC_IMAGE == "no" ]]; then + return + fi + # Don't install any configuration. This will be a base system + CONFIG_FILENAME= + # The presence of this file indicates that the initial + # setup has not yet been completed + touch $rootdir/home/$MY_USERNAME/.initial_setup + + + cat >> /home/$MY_USERNAME/.bashrc <<EOF +if [ -f ~/.initial_setup ]; then + clear + echo '>>> Freedombone system initial setup <<<' + echo '' + echo 'The first thing you need to do is to change your password, otherwise' + echo 'your system will be insecure. Your password should be at least 10' + echo 'characters long and contain letters and numbers. Do this now:' + passwd + sudo su + freedombone menuconfig + rm ~/.initial_setup +fi +EOF +} + continue_installation() { # If a configuration file exists then run with it # otherwise the interactive installer can be used @@ -298,6 +328,7 @@ chroot "$rootdir" apt-get update configure_ssh configure_networking admin_user_sudo +create_generic_image continue_installation cd / diff --git a/src/freedombone-image-make b/src/freedombone-image-make index 008205d8e..1823328d9 100755 --- a/src/freedombone-image-make +++ b/src/freedombone-image-make @@ -45,6 +45,7 @@ export NAMESERVER2 export PROJECT_NAME export CONFIG_FILENAME export SSH_PUBKEY +export GENERIC_IMAGE # Locate vmdebootstrap program fetched in Makefile basedir=`pwd` @@ -144,6 +145,7 @@ sudo sed -i "s|NAMESERVER2=.*|NAMESERVER2=${NAMESERVER1}|g" $TEMP_CUSTOMISE sudo sed -i "s|PROJECT_NAME=.*|PROJECT_NAME=${PROJECT_NAME}|g" $TEMP_CUSTOMISE sudo sed -i "s|CONFIG_FILENAME=.*|CONFIG_FILENAME=${CONFIG_FILENAME}|g" $TEMP_CUSTOMISE sudo sed -i "s|SSH_PUBKEY=.*|SSH_PUBKEY=${SSH_PUBKEY}|g" $TEMP_CUSTOMISE +sudo sed -i "s|GENERIC_IMAGE=.*|GENERIC_IMAGE=${GENERIC_IMAGE}|g" $TEMP_CUSTOMISE echo "starting $VMDEBOOTSTRAP" # Run vmdebootstrap script to create image -- GitLab