summaryrefslogtreecommitdiff
path: root/configs/profile/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'configs/profile/build.sh')
-rwxr-xr-xconfigs/profile/build.sh74
1 files changed, 44 insertions, 30 deletions
diff --git a/configs/profile/build.sh b/configs/profile/build.sh
index 27fea9f..efdadce 100755
--- a/configs/profile/build.sh
+++ b/configs/profile/build.sh
@@ -2,6 +2,12 @@
set -e -u
+# misc constants
+readonly EFI_IMG_KBYTES=40000
+readonly LOG_COLOR='\033[01;34m'
+readonly ERR_COLOR='\033[00;31m'
+readonly END_COLOR='\033[00m'
+
# editions
declare -ar VALID_INITS=('openrc' 'systemd')
declare -ar VALID_GUIS=('cli' 'lxde' 'mate')
@@ -17,14 +23,21 @@ iso_version=$(date +%Y.%m.%d)
iso_label="PARA_$(date +%Y%m)"
iso_dirname='parabola'
enable_offline_install='false'
-enable_tts_brltty='false'
offline_switch=''
-work_dir=./work/
-out_dir=./out/
+enable_tts_brltty='false'
+pacman_conf=${work_dir}/pacman.conf
+work_dir=./work
+out_dir=./out
target=''
verbose=''
-efi_img_kbytes=40000
-pacman_conf=${work_dir}/pacman.conf
+
+# computed params, per CLI args
+archs='' # deferred
+iso_filename='' # deferred
+iso_init='' # deferred
+iso_gui='' # deferred
+base_pkgs='' # deferred
+arch='' # deferred
# environment
data_dir=/usr/share/parabolaiso/data
@@ -64,9 +77,8 @@ _usage ()
exit ${1}
}
-LOG_STEP() { printf "\033[01;34m%s\033[00m\n" "$(echo -e $*)" ; }
-LOG_ERROR() { printf "\033[00;31m%s\033[00m\n" "$(echo -e $*)" ; }
-
+LOG_STEP() { printf "${LOG_COLOR}%s${END_COLOR}\n" "$(echo -e $*)" ; }
+LOG_ERROR() { printf "${ERR_COLOR}%s${END_COLOR}\n" "$(echo -e $*)" ; }
# Helper function to run make_*() only one time per architecture.
run_once() {
@@ -268,9 +280,9 @@ make_syslinux() {
make_isolinux() {
mkdir -p ${work_dir}/iso/isolinux
sed "s|%INSTALL_DIR%|${iso_dirname}|g" ${releng_dir}/isolinux/isolinux.cfg > ${work_dir}/iso/isolinux/isolinux.cfg
- cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/
- cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/
- cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/
+ cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isolinux.bin ${work_dir}/iso/isolinux/
+ cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/isohdpfx.bin ${work_dir}/iso/isolinux/
+ cp ${work_dir}/${arch}/root-image/usr/lib/syslinux/bios/ldlinux.c32 ${work_dir}/iso/isolinux/
}
# Prepare /EFI
@@ -281,7 +293,7 @@ make_efi() {
fi
mkdir -p ${work_dir}/iso/loader/entries
- cp ${releng_dir}/efiboot/loader/loader.conf ${work_dir}/iso/loader/
+ cp ${releng_dir}/efiboot/loader/loader.conf ${work_dir}/iso/loader/
cp ${releng_dir}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/iso/loader/entries/
cp ${releng_dir}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/iso/loader/entries/
@@ -303,7 +315,7 @@ make_efiboot() {
# create EFI image
mkdir -p ${work_dir}/iso/EFI/parabolaiso
- truncate -s ${efi_img_kbytes}K ${work_dir}/iso/EFI/parabolaiso/efiboot.img
+ truncate -s ${EFI_IMG_KBYTES}K ${work_dir}/iso/EFI/parabolaiso/efiboot.img
mkfs.vfat -n PARABOLAISO_EFI ${work_dir}/iso/EFI/parabolaiso/efiboot.img
mkdir -p ${work_dir}/efiboot
@@ -311,7 +323,7 @@ make_efiboot() {
mount ${work_dir}/iso/EFI/parabolaiso/efiboot.img ${work_dir}/efiboot
mkdir -p ${work_dir}/efiboot-staging/EFI/parabolaiso
- cp ${work_dir}/iso/${iso_dirname}/boot/x86_64/vmlinuz ${work_dir}/efiboot-staging/EFI/parabolaiso/vmlinuz.efi
+ cp ${work_dir}/iso/${iso_dirname}/boot/x86_64/vmlinuz ${work_dir}/efiboot-staging/EFI/parabolaiso/vmlinuz.efi
cp ${work_dir}/iso/${iso_dirname}/boot/x86_64/parabolaiso.img ${work_dir}/efiboot-staging/EFI/parabolaiso/parabolaiso.img
mkdir -p ${work_dir}/efiboot-staging/EFI/boot
@@ -320,10 +332,9 @@ make_efiboot() {
fi
mkdir -p ${work_dir}/efiboot-staging/loader/entries
- cp ${releng_dir}/efiboot/loader/loader.conf ${work_dir}/efiboot-staging/loader/
- cp ${releng_dir}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot-staging/loader/entries/
- cp ${releng_dir}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot-staging/loader/entries/
-
+ cp ${releng_dir}/efiboot/loader/loader.conf ${work_dir}/efiboot-staging/loader/
+ cp ${releng_dir}/efiboot/loader/entries/uefi-shell-v2-x86_64.conf ${work_dir}/efiboot-staging/loader/entries/
+ cp ${releng_dir}/efiboot/loader/entries/uefi-shell-v1-x86_64.conf ${work_dir}/efiboot-staging/loader/entries/
sed "s|%PARABOLAISO_LABEL%|${iso_label}|g;
s|%INSTALL_DIR%|${iso_dirname}|g" \
${releng_dir}/efiboot/loader/entries/parabolaiso-x86_64-cd.conf > ${work_dir}/efiboot-staging/loader/entries/parabolaiso-x86_64.conf
@@ -331,14 +342,14 @@ make_efiboot() {
cp ${work_dir}/iso/EFI/shellx64_v2.efi ${work_dir}/efiboot-staging/EFI/
cp ${work_dir}/iso/EFI/shellx64_v1.efi ${work_dir}/efiboot-staging/EFI/
- efi_kbytes=$(($(du -ks ${work_dir}/efiboot-staging | cut -f 1) + 32))
- if [[ ${efi_kbytes} -lt $((${efi_img_kbytes})) ]]; then
+ local efi_kbytes=$(($(du -ks ${work_dir}/efiboot-staging | cut -f 1) + 32))
+ if [[ ${efi_kbytes} -lt $(( ${EFI_IMG_KBYTES} )) ]]; then
echo "Populating EFI image (${efi_kbytes}KB)"
cp -rT ${work_dir}/efiboot-staging ${work_dir}/efiboot
rm -rf ${work_dir}/efiboot-staging
umount ${work_dir}/efiboot
else
- echo "Error: Not enough space on EFI image (${efi_img_kbytes}KB - need ${efi_kbytes}KB)"
+ echo "Error: Not enough space on EFI image (${EFI_IMG_KBYTES}KB - need ${efi_kbytes}KB)"
umount ${work_dir}/efiboot
exit 1
fi
@@ -352,9 +363,9 @@ make_aitab() {
# Build all filesystem images specified in aitab (.fs.sfs .sfs)
make_prepare() {
- cp -a -l -f ${work_dir}/${arch}/root-image ${work_dir}
- setarch ${arch} mkparabolaiso ${verbose} -w ${work_dir} -D ${iso_dirname} -C ${pacman_conf} pkglist
- setarch ${arch} mkparabolaiso ${verbose} -w ${work_dir} -D ${iso_dirname} -C ${pacman_conf} ${offline_switch} prepare
+ cp -a -l -f ${work_dir}/${arch}/root-image ${work_dir}/
+ setarch ${arch} mkparabolaiso ${verbose} -w ${work_dir}/ -D ${iso_dirname} -C ${pacman_conf} pkglist
+ setarch ${arch} mkparabolaiso ${verbose} -w ${work_dir}/ -D ${iso_dirname} -C ${pacman_conf} ${offline_switch} prepare
rm -rf ${work_dir}/root-image
# rm -rf ${work_dir}/${arch}/root-image (if low space, this helps)
@@ -362,8 +373,8 @@ make_prepare() {
# Build ISO
make_iso() {
- setarch ${arch} mkparabolaiso ${verbose} -w ${work_dir} -D ${iso_dirname} checksum
- setarch ${arch} mkparabolaiso ${verbose} -w ${work_dir} -D ${iso_dirname} -L ${iso_label} -o ${out_dir} iso ${iso_filename}
+ setarch ${arch} mkparabolaiso ${verbose} -w ${work_dir}/ -D ${iso_dirname} checksum
+ setarch ${arch} mkparabolaiso ${verbose} -w ${work_dir}/ -D ${iso_dirname} -L ${iso_label} -o ${out_dir}/ iso ${iso_filename}
}
@@ -411,10 +422,11 @@ else
fi
iso_title="${iso_title} - ${iso_edition} Edition ${iso_version}"
iso_filename="parabola-${iso_edition}-${iso_arch}-${iso_type}-${iso_version}.iso"
-iso_filename=$( echo ${iso_filename} | tr '[:upper:]/' '[:lower:]-')
-out_dir=${out_dir}$(echo ${iso_edition}-${iso_version} | tr '[:upper:]/' '[:lower:]-')
-iso_init=$( echo ${iso_edition} | cut -d '/' -f 1 | tr '[:upper:]' '[:lower:]' )
-iso_gui=$( echo ${iso_edition} | cut -d '/' -f 2 | tr '[:upper:]' '[:lower:]' )
+release_dirname="${iso_edition}-${iso_arch}-${iso_version}"
+iso_filename=$( echo ${iso_filename} | tr '[:upper:]/' '[:lower:]-')
+out_dir=${out_dir}/$(echo ${release_dirname} | tr '[:upper:]/' '[:lower:]-')
+iso_init=$( echo ${iso_edition} | cut -d '/' -f 1 | tr '[:upper:]' '[:lower:]' )
+iso_gui=$( echo ${iso_edition} | cut -d '/' -f 2 | tr '[:upper:]' '[:lower:]' )
[[ "${iso_init}" == 'openrc' ]] && base_group='base-openrc' || base_group='base'
[[ "${archs}" == 'i686' ]] && arch='i686' || arch='x86_64'
@@ -505,3 +517,5 @@ done
# build ISO
run_once make_iso
+
+LOG_STEP "done - ISO: '${iso_filename}' created successfully"