- deploy-disk.sh: the shared "write a finished system to a disk" step — partition (GPT bios/efi) -> btrfs layout via btrfs/init.sh -> rsync rootfs -> chroot (real fstab, GRUB, hostname). Carries the optional ARCLINE_SIGN hook; the signing tooling itself lands in a later commit. - apply-fstab.sh: renders the edition fstab template with real root/efi UUIDs and drops the swap line. - build-image.sh: rootfs -> bootable qcow2/raw disk image (sparse file + loop device + deploy), the cloud edition's primary output. - install.sh: scripted installer for a real disk, confirmation-gated. - Makefile: image-<edition> targets (+ minimal variants); build-edition.sh learns the "image" stage; cloud metadata now ships a disk image. - check-host-deps.sh / GitLab CI: add gdisk, parted, rsync, dosfstools, qemu-utils, dpkg, sbsigntool to the build image.
31 lines
1.1 KiB
Bash
Executable File
31 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
# Arcline OS — edition build orchestrator
|
|
#
|
|
# scripts/build-edition.sh <edition> <stage>
|
|
# stage: rootfs | iso
|
|
#
|
|
# Thin dispatcher so the Makefile can stay dumb.
|
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
set -euo pipefail
|
|
source "$(dirname "${BASH_SOURCE[0]}")/common.sh"
|
|
|
|
EDITION="${1:?usage: build-edition.sh <edition> <rootfs|iso>}"
|
|
STAGE="${2:?usage: build-edition.sh <edition> <rootfs|iso>}"
|
|
validate_edition "$EDITION"
|
|
|
|
case "$STAGE" in
|
|
rootfs)
|
|
"$ROOT/scripts/build-rootfs.sh" "$EDITION"
|
|
;;
|
|
iso)
|
|
"$ROOT/scripts/build-iso.sh" "$EDITION"
|
|
;;
|
|
image)
|
|
"$ROOT/scripts/build-image.sh" "$EDITION"
|
|
;;
|
|
*)
|
|
die "unknown stage '$STAGE' (expected: rootfs | iso | image)"
|
|
;;
|
|
esac
|