Fixing issues with variable quoting and arrays
archiso/mkarchiso: Calls to _pacman() need to be done with multiple parameters (e.g. array) instead of one string, as string splitting is not done in that function anymore. Turning _iso_efi_boot_args from string into an array to have an easier time of passing it to xorriso. Calling xorriso within the if statements instead of providing -quiet via variable. Fixing command_install() to provide packages separately to _pacman() configs/releng/build.sh: Replacing all newlines when retrieving the packages from packages.x86_64 with spaces so they will be properly provided to "mkarchiso install".
This commit is contained in:
parent
511ca9d95d
commit
5e43a63b3c
@ -43,7 +43,7 @@ _msg_error() {
|
|||||||
|
|
||||||
_chroot_init() {
|
_chroot_init() {
|
||||||
mkdir -p ${work_dir}/airootfs
|
mkdir -p ${work_dir}/airootfs
|
||||||
_pacman "base syslinux"
|
_pacman base syslinux
|
||||||
}
|
}
|
||||||
|
|
||||||
_chroot_run() {
|
_chroot_run() {
|
||||||
@ -279,7 +279,7 @@ command_pkglist () {
|
|||||||
|
|
||||||
# Create an ISO9660 filesystem from "iso" directory.
|
# Create an ISO9660 filesystem from "iso" directory.
|
||||||
command_iso () {
|
command_iso () {
|
||||||
local _iso_efi_boot_args=""
|
local _iso_efi_boot_args=()
|
||||||
|
|
||||||
if [[ ! -f "${work_dir}/iso/isolinux/isolinux.bin" ]]; then
|
if [[ ! -f "${work_dir}/iso/isolinux/isolinux.bin" ]]; then
|
||||||
_msg_error "The file '${work_dir}/iso/isolinux/isolinux.bin' does not exist." 1
|
_msg_error "The file '${work_dir}/iso/isolinux/isolinux.bin' does not exist." 1
|
||||||
@ -290,10 +290,12 @@ command_iso () {
|
|||||||
|
|
||||||
# If exists, add an EFI "El Torito" boot image (FAT filesystem) to ISO-9660 image.
|
# If exists, add an EFI "El Torito" boot image (FAT filesystem) to ISO-9660 image.
|
||||||
if [[ -f "${work_dir}/iso/EFI/archiso/efiboot.img" ]]; then
|
if [[ -f "${work_dir}/iso/EFI/archiso/efiboot.img" ]]; then
|
||||||
_iso_efi_boot_args="-eltorito-alt-boot
|
_iso_efi_boot_args+=(
|
||||||
-e EFI/archiso/efiboot.img
|
'-eltorito-alt-boot'
|
||||||
-no-emul-boot
|
'-e' 'EFI/archiso/efiboot.img'
|
||||||
-isohybrid-gpt-basdat"
|
'-no-emul-boot'
|
||||||
|
'-isohybrid-gpt-basdat'
|
||||||
|
)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
_show_config iso
|
_show_config iso
|
||||||
@ -302,22 +304,36 @@ command_iso () {
|
|||||||
_msg_info "Creating ISO image..."
|
_msg_info "Creating ISO image..."
|
||||||
local _qflag=""
|
local _qflag=""
|
||||||
if [[ "${quiet}" == "y" ]]; then
|
if [[ "${quiet}" == "y" ]]; then
|
||||||
_qflag="-quiet"
|
xorriso -as mkisofs -quiet \
|
||||||
|
-iso-level 3 \
|
||||||
|
-full-iso9660-filenames \
|
||||||
|
-volid "${iso_label}" \
|
||||||
|
-appid "${iso_application}" \
|
||||||
|
-publisher "${iso_publisher}" \
|
||||||
|
-preparer "prepared by mkarchiso" \
|
||||||
|
-eltorito-boot isolinux/isolinux.bin \
|
||||||
|
-eltorito-catalog isolinux/boot.cat \
|
||||||
|
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
||||||
|
-isohybrid-mbr "${work_dir}/iso/isolinux/isohdpfx.bin" \
|
||||||
|
"${_iso_efi_boot_args[@]}" \
|
||||||
|
-output "${out_dir}/${img_name}" \
|
||||||
|
"${work_dir}/iso/"
|
||||||
|
else
|
||||||
|
xorriso -as mkisofs \
|
||||||
|
-iso-level 3 \
|
||||||
|
-full-iso9660-filenames \
|
||||||
|
-volid "${iso_label}" \
|
||||||
|
-appid "${iso_application}" \
|
||||||
|
-publisher "${iso_publisher}" \
|
||||||
|
-preparer "prepared by mkarchiso" \
|
||||||
|
-eltorito-boot isolinux/isolinux.bin \
|
||||||
|
-eltorito-catalog isolinux/boot.cat \
|
||||||
|
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
||||||
|
-isohybrid-mbr "${work_dir}/iso/isolinux/isohdpfx.bin" \
|
||||||
|
"${_iso_efi_boot_args[@]}" \
|
||||||
|
-output "${out_dir}/${img_name}" \
|
||||||
|
"${work_dir}/iso/"
|
||||||
fi
|
fi
|
||||||
xorriso -as mkisofs "${_qflag}" \
|
|
||||||
-iso-level 3 \
|
|
||||||
-full-iso9660-filenames \
|
|
||||||
-volid "${iso_label}" \
|
|
||||||
-appid "${iso_application}" \
|
|
||||||
-publisher "${iso_publisher}" \
|
|
||||||
-preparer "prepared by mkarchiso" \
|
|
||||||
-eltorito-boot isolinux/isolinux.bin \
|
|
||||||
-eltorito-catalog isolinux/boot.cat \
|
|
||||||
-no-emul-boot -boot-load-size 4 -boot-info-table \
|
|
||||||
-isohybrid-mbr "${work_dir}/iso/isolinux/isohdpfx.bin" \
|
|
||||||
"${_iso_efi_boot_args}" \
|
|
||||||
-output "${out_dir}/${img_name}" \
|
|
||||||
"${work_dir}/iso/"
|
|
||||||
_msg_info "Done! | $(ls -sh "${out_dir}/${img_name}")"
|
_msg_info "Done! | $(ls -sh "${out_dir}/${img_name}")"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -351,7 +367,7 @@ command_install () {
|
|||||||
|
|
||||||
_show_config install
|
_show_config install
|
||||||
|
|
||||||
_pacman "${pkg_list[*]}"
|
_pacman "${pkg_list[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
command_init() {
|
command_init() {
|
||||||
@ -374,7 +390,8 @@ while getopts 'p:r:C:L:P:A:D:w:o:s:c:g:vh' arg; do
|
|||||||
case "${arg}" in
|
case "${arg}" in
|
||||||
p)
|
p)
|
||||||
read -r -a opt_pkg_list <<< "${OPTARG}"
|
read -r -a opt_pkg_list <<< "${OPTARG}"
|
||||||
pkg_list+=("${opt_pkg_list[@]}") ;;
|
pkg_list+=("${opt_pkg_list[@]}")
|
||||||
|
;;
|
||||||
r) run_cmd="${OPTARG}" ;;
|
r) run_cmd="${OPTARG}" ;;
|
||||||
C) pacman_conf="${OPTARG}" ;;
|
C) pacman_conf="${OPTARG}" ;;
|
||||||
L) iso_label="${OPTARG}" ;;
|
L) iso_label="${OPTARG}" ;;
|
||||||
|
@ -76,10 +76,10 @@ make_basefs() {
|
|||||||
make_packages() {
|
make_packages() {
|
||||||
if [ -n "${verbose}" ]; then
|
if [ -n "${verbose}" ]; then
|
||||||
mkarchiso -v -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" \
|
mkarchiso -v -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" \
|
||||||
-p "$(grep -h -v '^#' "${script_path}/packages.x86_64")" install
|
-p "$(grep -h -v '^#' "${script_path}/packages.x86_64"| sed ':a;N;$!ba;s/\n/ /g')" install
|
||||||
else
|
else
|
||||||
mkarchiso -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" \
|
mkarchiso -w "${work_dir}/x86_64" -C "${work_dir}/pacman.conf" -D "${install_dir}" \
|
||||||
-p "$(grep -h -v '^#' "${script_path}/packages.x86_64")" install
|
-p "$(grep -h -v '^#' "${script_path}/packages.x86_64"| sed ':a;N;$!ba;s/\n/ /g')" install
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user