---
src/core/libs/lib-ui-interactive.sh | 30 +++++++++++++++++++++---------
1 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/src/core/libs/lib-ui-interactive.sh
b/src/core/libs/lib-ui-interactive.sh
index 16a9600..3cbbc00 100644
--- a/src/core/libs/lib-ui-interactive.sh
+++ b/src/core/libs/lib-ui-interactive.sh
@@ -715,7 +715,7 @@ interactive_select_packages() {
target_prepare_pacman || { show_warning 'Pacman preparation failure'
"Pacman preparation failed! Check $LOG for errors."; return 1; }
repos=`list_pacman_repos target`
- notify "Package selection is split into two stages. First you will
select package groups that contain packages you may be interested in. Then you
will be presented with a full list of packages for each group, allowing you to
fine-tune.\n\n
+ notify "Package selection is split into three stages. First, you will
select a bootloader. Then, you will select package groups that contain packages
that you may be interested in. Lastly, you will be presented with a full list
of packages for each group, allowing you to fine-tune.\n\n
Note that right now the packages (and groups) selection is limited to the
repos available at this time ($repos). Once you have your Arch system up and
running, you have access to more repositories and packages.\n\n
If any previous configuration you've done until now (like fancy filesystems)
require extra packages, we've already preselected them for your convenience"
@@ -725,6 +725,20 @@ If any previous configuration you've done until now (like
fancy filesystems) req
grouplist+=(${i} - OFF)
done
+ ask_option Grub "Choose bootloader" "Which bootloader would you like to
use?" required \
+ "Grub" "Use the GRUB bootloader" \
+ "Syslinux" "Use the Syslinux bootloader (ext2/3/4, btrfs, and vfat)" \
+ "None" "\Zb\Z1Warning\Z0\ZB: you must install your own bootloader!" ||
return 1
+
+ # Convert to lower case
+ bootloader=${ANSWER_OPTION,,}
+
+ if [[ $bootloader = grub ]]; then
+ local needed_pkg_bootloader=grub
+ elif [[ $bootloader = syslinux ]]; then
+ local needed_pkg_bootloader=syslinux
+ fi
+
ask_checklist "Select Package groups\nDo not deselect base unless you
know what you're doing!" 0 "${grouplist[@]}" || return 1
grouplist=("${ANSWER_CHECKLIST[@]}")
@@ -735,6 +749,7 @@ If any previous configuration you've done until now (like
fancy filesystems) req
# build the list of options, sorted primarily by group, then by
packagename (this is already). marking where appropriate
local pkglist=()
needed_pkgs=("${needed_pkgs_fs[@]}")
+ needed_pkgs+=("$needed_pkg_bootloader")
while read pkgname pkgver pkggroup pkgdesc; do
mark=OFF
if check_is_in "$pkggroup" "${grouplist[@]}" || check_is_in
$pkgname "${needed_pkgs[@]}"; then
@@ -843,18 +858,15 @@ interactive_runtime_network() {
return 0
}
+# bootloader is global variable that gets set in interactive_select_packages
interactive_install_bootloader () {
- ask_option Grub "Choose bootloader" "Which bootloader would you like to
use? Grub is the Arch default." required \
- "Grub" "Use the GRUB bootloader (default)" \
- "Syslinux" "Use the Syslinux bootloader (ext2/3/4, btrfs, and vfat)" \
- "None" "\Zb\Z1Warning\Z0\ZB: you must install your own bootloader!" ||
return 1
-
- bl=`tr '[:upper:]' '[:lower:]' <<< "$ANSWER_OPTION"`
- if [[ $bl == grub ]]; then
+ if [[ $bootloader = grub ]]; then
GRUB_OK=0
interactive_grub
- elif [[ $bl == syslinux ]]; then
+ elif [[ $bootloader = syslinux ]]; then
interactive_syslinux
+ else
+ show_warning 'No Bootloader' 'You did not select a bootloader.
No bootloader will be installed.' && return 1
fi
}
--
1.7.4.1