<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archangel/scripts/full-test.sh, branch main</title>
<subtitle>Arch Linux installer ISO — ZFS-on-root or BTRFS, doubles as rescue disk
</subtitle>
<id>https://git.cjennings.net/archangel/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/archangel/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/'/>
<updated>2026-02-23T12:10:51+00:00</updated>
<entry>
<title>fix: resolve remaining SC2155 warnings across all scripts</title>
<updated>2026-02-23T12:10:51+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T12:10:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=f667957b77eb5862248f41a89c68a4cbd7c633d9'/>
<id>urn:sha1:f667957b77eb5862248f41a89c68a4cbd7c633d9</id>
<content type='text'>
Declare and assign local variables separately in custom/archangel,
scripts/full-test.sh, scripts/test-install.sh, and remove unused
variable in custom/lib/zfs.sh.
</content>
</entry>
<entry>
<title>chore: make OVMF firmware paths configurable via environment</title>
<updated>2026-02-23T12:07:41+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T12:07:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=dcab77f58bc0d7eb6dc79d8fda97cb08a1894411'/>
<id>urn:sha1:dcab77f58bc0d7eb6dc79d8fda97cb08a1894411</id>
<content type='text'>
Allow OVMF_CODE and OVMF_VARS_ORIG to be overridden via environment
variables for portability across distros (Fedora, Ubuntu, etc. use
different paths for UEFI firmware).
</content>
</entry>
<entry>
<title>chore: add set -euo pipefail to scripts for safety</title>
<updated>2026-02-23T12:06:55+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T12:06:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=2ef27b6a5d190c4d38eb4d13a039e10c006d7c7b'/>
<id>urn:sha1:2ef27b6a5d190c4d38eb4d13a039e10c006d7c7b</id>
<content type='text'>
Enable undefined variable checking (set -u) and pipefail across
standalone scripts. Guard SUDO_USER references with ${SUDO_USER:-}
for set -u compatibility.
</content>
</entry>
<entry>
<title>chore: standardize shebangs, fix lint target, add .editorconfig</title>
<updated>2026-02-23T11:27:27+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-23T11:27:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=a171caf0b0a5541246f994155406e840b28390de'/>
<id>urn:sha1:a171caf0b0a5541246f994155406e840b28390de</id>
<content type='text'>
- Change all script shebangs to #!/usr/bin/env bash for portability
  (heredocs writing to installed systems keep #!/bin/bash)
- Remove || true from Makefile lint target so shellcheck errors fail the build
- Add .editorconfig for consistent formatting across editors
</content>
</entry>
<entry>
<title>fix: archzfs key prompt hang, test false positive, add local distribution</title>
<updated>2026-02-12T18:06:33+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-12T18:06:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=5df64c76d386fd2de863d21a2b1269d53e1a39f9'/>
<id>urn:sha1:5df64c76d386fd2de863d21a2b1269d53e1a39f9</id>
<content type='text'>
- Change archzfs SigLevel to Never (pacstrap -K empty keyring caused
  interactive GPG prompt blocking unattended installs)
- Fix pgrep matching avahi-daemon's [archangel.local] in full-test.sh
- Bump install timeout to 30min for DKMS builds
- Add ~/downloads/isos and archsetup inbox to build-release distribution
- Sync templates
</content>
</entry>
<entry>
<title>refactor: rename archzfs to archangel, simplify build-release</title>
<updated>2026-01-31T20:46:21+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-31T20:46:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=9835f35db6bd748ed79a35216cddd786df211a59'/>
<id>urn:sha1:9835f35db6bd748ed79a35216cddd786df211a59</id>
<content type='text'>
- Standardize naming: VM names, hostname, passwords, ISO naming
- Remove USB, Ventoy, and local deployment from build-release
- Add snapper package and Btrfs validation tests to sanity-test
- Update README for dual ZFS/Btrfs architecture
- Delete obsolete SESSION-CONTEXT.md and download-archzfs-iso.sh
</content>
</entry>
<entry>
<title>Use zfs-import-scan instead of zfs-import-cache for boot</title>
<updated>2026-01-21T06:33:42+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-21T06:33:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=a68150f7f0436e8260c9c0257f98b3a0a07b629a'/>
<id>urn:sha1:a68150f7f0436e8260c9c0257f98b3a0a07b629a</id>
<content type='text'>
Switch to the recommended pool import method that uses blkid to scan
for pools instead of relying on zpool.cache. This eliminates the
complexity of managing cachefile paths with altroot during installation.

Changes:
- Remove cachefile setup from create_zfs_pool() and configure_zfs_services()
- Enable zfs-import-scan.service instead of zfs-import-cache.service
- Set cachefile=none on the pool since it's not needed
- Update full-test.sh to verify zfs-import-scan is enabled

This approach is recommended per the Arch Wiki and doesn't require
the cachefile to be present in the initramfs.
</content>
</entry>
<entry>
<title>Add initramfs and reboot verification tests</title>
<updated>2026-01-21T01:32:13+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-21T01:32:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=bf25b2258081130f600206853030f3faa207fc69'/>
<id>urn:sha1:bf25b2258081130f600206853030f3faa207fc69</id>
<content type='text'>
- Check zpool.cache is present in initramfs (catches cachefile bugs)
- Add reboot test: issue reboot, wait for system to come back
- Verify ZFS pool healthy after reboot
- Ensures the installed system can survive a reboot cycle
</content>
</entry>
<entry>
<title>Fix ZFS boot failure: set cachefile property after pool creation</title>
<updated>2026-01-21T01:23:50+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-21T01:23:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=8525cd331c88b8d0f6b1be2c0207f4e68c449834'/>
<id>urn:sha1:8525cd331c88b8d0f6b1be2c0207f4e68c449834</id>
<content type='text'>
- Add zpool set cachefile=/etc/zfs/zpool.cache after pool creation
- Without this, initramfs ZFS hook can't import pool at boot
- Causes "cannot import '(null)': no such pool available" error
- Add cachefile property test to full-test.sh
</content>
</entry>
<entry>
<title>Fix full-test.sh exiting after first passed test</title>
<updated>2026-01-20T12:54:47+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-20T12:54:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archangel/commit/?id=cb9d9824d994d5e11fc70bce7f83be2343912369'/>
<id>urn:sha1:cb9d9824d994d5e11fc70bce7f83be2343912369</id>
<content type='text'>
Bug: ((TESTS_PASSED++)) returns exit code 1 when TESTS_PASSED is 0,
because post-increment evaluates the old value (0) which is falsy.
With set -e, this caused the script to exit after the first test passed.

Fix: Use pre-increment ((++TESTS_PASSED)) which returns the new value.
</content>
</entry>
</feed>
