Skip to content
Snippets Groups Projects
Commit 39872680 authored by Bob Mottram's avatar Bob Mottram
Browse files

Minimise the number of decisions during interactive install

parent 79f5759a
No related branches found
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
......@@ -53,6 +53,9 @@ INSTALLING_ON_BBB="no"
# Version number of this script
VERSION="1.01"
 
# if yes then this minimises the number of descisions presented during install
MINIMAL_INSTALL="yes"
# Different system variants which may be specified within
# the SYSTEM_TYPE option
VARIANT_FULL="full"
......@@ -473,6 +476,7 @@ function show_help {
echo ''
echo $' -h --help Show help'
echo $' menuconfig Easy interactive installation'
echo $' menuconfigfull Full interactive installation'
echo $' -c --config Installing from a configuration file'
echo $' --bbb Installing on Beaglebone Black'
echo $' -u --user User to install the system as'
......@@ -561,11 +565,20 @@ function interactive_configuration {
rm -f /tmp/meshuserdevice
fi
 
freedombone-config \
-f $CONFIGURATION_FILE \
-w $FREEDOMBONE_WEBSITE \
-b $FREEDOMBONE_BITMESSAGE \
-m $MINIMUM_PASSWORD_LENGTH
if [[ $MINIMAL_INSTALL == "no" ]]; then
freedombone-config \
-f $CONFIGURATION_FILE \
-w $FREEDOMBONE_WEBSITE \
-b $FREEDOMBONE_BITMESSAGE \
-m $MINIMUM_PASSWORD_LENGTH
else
freedombone-config \
-f $CONFIGURATION_FILE \
-w $FREEDOMBONE_WEBSITE \
-b $FREEDOMBONE_BITMESSAGE \
-m $MINIMUM_PASSWORD_LENGTH
--minimal "yes"
fi
if [ -f /tmp/meshuserdevice ]; then
# mesh network user device installation
rm -f /tmp/meshuserdevice
......@@ -574,7 +587,7 @@ function interactive_configuration {
if [ ! "$?" = "0" ]; then
echo 'Command failed:'
echo ''
echo " freedombone-config -u $MY_USERNAME -f $CONFIGURATION_FILE -w $FREEDOMBONE_WEBSITE -b $FREEDOMBONE_BITMESSAGE -m $MINIMUM_PASSWORD_LENGTH"
echo " freedombone-config -u $MY_USERNAME -f $CONFIGURATION_FILE -w $FREEDOMBONE_WEBSITE -b $FREEDOMBONE_BITMESSAGE -m $MINIMUM_PASSWORD_LENGTH --minimal [yes|no]"
echo ''
exit 73594
fi
......@@ -593,7 +606,14 @@ function interactive_configuration {
fi
}
 
if [[ $1 == "menuconfig" ]]; then
command_options=$1
if [[ $command_options == "menuconfigfull" ]]; then
MINIMAL_INSTALL="no"
command_options="menuconfig"
fi
if [[ $command_options == "menuconfig" ]]; then
interactive_configuration
else
while [[ $# > 1 ]]
......@@ -760,6 +780,11 @@ else
shift
DEBIAN_REPO=$1
;;
# minimal install
--minimal)
shift
MINIMAL_INSTALL=$1
;;
*)
# unknown option
;;
......@@ -830,7 +855,9 @@ function read_configuration {
if [[ $CONFIGURATION_FILE != '/root/freedombone.cfg' ]]; then
cp $CONFIGURATION_FILE /root/freedombone.cfg
fi
if grep -q "MINIMAL_INSTALL" $CONFIGURATION_FILE; then
MINIMAL_INSTALL=$(grep "MINIMAL_INSTALL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
fi
if grep -q "LETSENCRYPT_SERVER" $CONFIGURATION_FILE; then
LETSENCRYPT_SERVER=$(grep "LETSENCRYPT_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
fi
......
This diff is collapsed.
......@@ -76,6 +76,9 @@ INTERACTIVE="no"
# Whether this is a generic image for mass redistribution on the interwebs
GENERIC_IMAGE="no"
# Whether to reduce the number of decisions during interactive install
MINIMAL_INSTALL="yes"
while [[ $# > 1 ]]
do
key="$1"
......@@ -145,6 +148,10 @@ case $key in
shift
GENERIC_IMAGE="$1"
;;
--minimal)
shift
MINIMAL_INSTALL="$1"
;;
*)
# unknown option
;;
......@@ -153,7 +160,7 @@ shift
done
if [[ $INTERACTIVE == "yes" || $INTERACTIVE == "y" || $INTERACTIVE == "Yes" ]]; then
freedombone-config
freedombone-config --minimal "$MINIMAL_INSTALL"
if [ -f freedombone.cfg ]; then
CONFIG_FILENAME=freedombone.cfg
DEFAULT_DOMAIN_NAME=$(cat $CONFIG_FILENAME | grep 'DEFAULT_DOMAIN_NAME' | awk -F '=' '{print $2}')
......@@ -207,7 +214,8 @@ make $IMAGE_TYPE \
CONFIG_FILENAME="$CONFIG_FILENAME" \
IMAGE_SIZE="$IMAGE_SIZE" \
SSH_PUBKEY="$SSH_PUBKEY" \
GENERIC_IMAGE="$GENERIC_IMAGE"
GENERIC_IMAGE="$GENERIC_IMAGE" \
MINIMAL_INSTALL="$MINIMAL_INSTALL"
if [ ! "$?" = "0" ]; then
echo $'Build failed'
......
......@@ -34,6 +34,9 @@ PROJECT_NAME='freedombone'
export TEXTDOMAIN=${PROJECT_NAME}-image-customise
export TEXTDOMAINDIR="/usr/share/locale"
# Whether to minimise the number of decisions during interactive install
MINIMAL_INSTALL="yes"
MY_USERNAME='debian'
MY_PASSWORD='freedombone'
......@@ -255,7 +258,11 @@ EOF
echo -n " echo \"${MY_USERNAME}:" >> $rootdir/root/.bashrc
echo '$(printf `cat ~/login.txt`)"|chpasswd' >> $rootdir/root/.bashrc
echo ' freedombone menuconfig' >> $rootdir/root/.bashrc
if [[ $MINIMAL_INSTALL == "no" ]]; then
echo ' freedombone menuconfigfull' >> $rootdir/root/.bashrc
else
echo ' freedombone menuconfig' >> $rootdir/root/.bashrc
fi
echo ' if [ "$?" = "0" ]; then' >> $rootdir/root/.bashrc
echo ' if [ -f ~/freedombone-completed.txt ]; then' >> $rootdir/root/.bashrc
# Remove the initial setup files
......
......@@ -51,6 +51,7 @@ export PROJECT_NAME
export CONFIG_FILENAME
export SSH_PUBKEY
export GENERIC_IMAGE
export MINIMAL_INSTALL
# Locate vmdebootstrap program fetched in Makefile
basedir=`pwd`
......@@ -162,6 +163,7 @@ 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
sudo sed -i "s|MINIMAL_INSTALL=.*|MINIMAL_INSTALL=\"${MINIMAL_INSTALL}\"|g" $TEMP_CUSTOMISE
echo $"starting $VMDEBOOTSTRAP"
# Run vmdebootstrap script to create image
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment