./gen.sh [profile] [target_arch]
profiles/{profile}
:config.sh
: (Optional) config script in chrootpackages.txt
: packages to be installedpackages.{target_arch}.txt
: (Optional) packages to be installed for a specific archfiles/
: (Optional) files to be used in globalconfig.sh
, installed to/.files/
beforeconfig.sh
subprofiles/{subprofile}/
: (Optional) subprofile directorypackages.txt
: (Optional) packages to be installed (after global config scripts)config.sh
: (Optional) config script in chrootfiles/
: (Optional) files to be used in subprofile levelconfig.sh
, installed to/.files/
beforeconfig.sh
title.txt
: (Optional) title to be used in limine menu, which defaults to be subprofile name
default_subprofile.txt
: (Optional) default subprofile
config
:common
: common config script in chrootcommon/function_enable_service.sh
: functions to be used by config scripts
{profile_set}
: config script in chroot for a specific group of profiles
- pacman + arch-install-scripts (pacstrap + arch-chroot) (chroot support is WIP)
- libisoburn (xorriso)
- wget
- squashfs-tools (mksquashfs)
utils/pacman-config.sh
: configurespacman.conf
utils/cleanup.sh
: executes pre-task cleanuputils/install.sh
:- create and mount
base
layer: install base system - create and mount
base
+packages
layers: install packages, install arch-specific packages (if any)
- create and mount
utils/hook.sh
:- create and mount
base
+packages
+live
layers - mounts
boot
partition (if liveimage) - copy files to be used in global config hooks (if any)
- executes global config hooks (in
config/
) - executes profile config hooks (in
profiles/{profile}/config.sh
) - clean used files by config hooks
- create and mount
utils/hooks-subprofiles.sh
: (if liveimage and any subprofile)- create and mount
base
+packages
+live
+live-{subprofile}
layers - copy files to be used in subprofile config hooks (if any)
- executes subprofile config hooks (in
profiles/{profile}/subprofiles/{subprofile}/config.sh
) - clean used files by config hooks
- create and mount
utils/limine_menu.sh
: (if liveimage and any subprofile)- generate and override limine config
utils/collect_tarball.sh
: compress tarball and make checksum (if tarball)utils/collect_liveimage.sh
: (if liveimage)- make squashfs for each layer
- make iso from isofs directory
- chroot into
base
+packages
layers to install BIOS bootloader (if x86) - make checksum
utils/cleanup.sh
: executes post-task cleanup
- base: base packages
- packages: profile packages
- live: profile live config
- live-{subprofile}: subprofile live config
- create local repo in iso