|
|
|
@ -253,6 +253,27 @@ END2
|
|
|
|
|
END
|
|
|
|
|
)"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# thanks https://wiki.debian.org/Keyboard
|
|
|
|
|
chroot_kbd_conf_str="$(cat<<END
|
|
|
|
|
chroot_kbd_conf() {
|
|
|
|
|
###################
|
|
|
|
|
# configure keyboard
|
|
|
|
|
cat > /etc/default/keyboard <<END2
|
|
|
|
|
# KEYBOARD CONFIGURATION FILE
|
|
|
|
|
# generated by deploy-workbench.sh
|
|
|
|
|
|
|
|
|
|
# Consult the keyboard(5) manual page.
|
|
|
|
|
|
|
|
|
|
XKBMODEL="pc105"
|
|
|
|
|
XKBLAYOUT="\${CUSTOM_LANG}"
|
|
|
|
|
|
|
|
|
|
BACKSPACE="guess"
|
|
|
|
|
END2
|
|
|
|
|
}
|
|
|
|
|
END
|
|
|
|
|
)"
|
|
|
|
|
|
|
|
|
|
prepare_app() {
|
|
|
|
|
# prepare app during prepare_chroot_env
|
|
|
|
|
workbench_dir="${ISO_PATH}/chroot/opt/workbench"
|
|
|
|
@ -286,7 +307,9 @@ if [ "\${nfs_host}" ]; then
|
|
|
|
|
fi
|
|
|
|
|
# clearly specify the right working directory, used in the python script as os.getcwd()
|
|
|
|
|
cd /mnt
|
|
|
|
|
pipenv run python /opt/workbench/workbench-script.py --config /mnt/settings.ini
|
|
|
|
|
#pipenv run python /opt/workbench/workbench-script.py --config /mnt/settings.ini
|
|
|
|
|
# works meanwhile this project is vanilla python
|
|
|
|
|
python /opt/workbench/workbench-script.py --config /mnt/settings.ini
|
|
|
|
|
|
|
|
|
|
stty echo
|
|
|
|
|
set +x
|
|
|
|
@ -302,7 +325,7 @@ echo 'Install requirements'
|
|
|
|
|
|
|
|
|
|
# Install debian requirements
|
|
|
|
|
apt-get install -y --no-install-recommends \
|
|
|
|
|
sudo locales \
|
|
|
|
|
sudo locales keyboard-configuration console-setup \
|
|
|
|
|
python-is-python3 python3 python3-dev python3-pip pipenv \
|
|
|
|
|
dmidecode smartmontools hwinfo pciutils lshw nfs-common < /dev/null
|
|
|
|
|
|
|
|
|
@ -360,8 +383,14 @@ ${install_app_str}
|
|
|
|
|
# thanks src https://serverfault.com/questions/362903/how-do-you-set-a-locale-non-interactively-on-debian-ubuntu
|
|
|
|
|
export LANG=${LANG}
|
|
|
|
|
export LC_ALL=${LANG}
|
|
|
|
|
echo "${MYLOCALE}" > /etc/locale.gen
|
|
|
|
|
# Generate the locale
|
|
|
|
|
locale-gen
|
|
|
|
|
# feeds /etc/default/locale for the shell env var
|
|
|
|
|
update-locale LANG=${LANG} LC_ALL=${LANG}
|
|
|
|
|
# this is a high level command that does locale-gen and update-locale altogether
|
|
|
|
|
dpkg-reconfigure --frontend=noninteractive locales
|
|
|
|
|
# but it is too interactive
|
|
|
|
|
#dpkg-reconfigure --frontend=noninteractive locales
|
|
|
|
|
# DEBUG
|
|
|
|
|
locale -a
|
|
|
|
|
|
|
|
|
@ -387,6 +416,9 @@ apt-get install -y --no-install-recommends \
|
|
|
|
|
< /dev/null
|
|
|
|
|
|
|
|
|
|
${chroot_netdns_conf_str}
|
|
|
|
|
CUSTOM_LANG=${CUSTOM_LANG}
|
|
|
|
|
${chroot_kbd_conf_str}
|
|
|
|
|
chroot_kbd_conf
|
|
|
|
|
|
|
|
|
|
# Set up root user
|
|
|
|
|
# this is the root password
|
|
|
|
@ -406,7 +438,19 @@ CHROOT
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
prepare_chroot_env() {
|
|
|
|
|
LANG="${CUSTOM_LANG:-es_ES.UTF-8}"
|
|
|
|
|
CUSTOM_LANG="${CUSTOM_LANG:-es}"
|
|
|
|
|
case "${CUSTOM_LANG}" in
|
|
|
|
|
es)
|
|
|
|
|
export LANG="es_ES.UTF-8"
|
|
|
|
|
export MYLOCALE="${LANG} UTF-8"
|
|
|
|
|
;;
|
|
|
|
|
en)
|
|
|
|
|
export LANG="en_US.UTF-8"
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
echo "ERROR: CUSTOM_LANG not supported. Available: es"
|
|
|
|
|
exit 1
|
|
|
|
|
esac
|
|
|
|
|
# version of debian the bootstrap is going to build
|
|
|
|
|
# if no VERSION_CODENAME is specified we assume that the bootstrap is going to
|
|
|
|
|
# be build with the same version of debian being executed because some files
|
|
|
|
@ -430,6 +474,7 @@ prepare_chroot_env() {
|
|
|
|
|
prepare_app
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# thanks https://willhaley.com/blog/custom-debian-live-environment/
|
|
|
|
|
install_requirements() {
|
|
|
|
|
# Install requirements
|
|
|
|
|