omacom/omarchy#13362 sets HOOKS per platform inside 00-omarchy-hooks.conf, with no column-0 HOOKS= line, so the aarch64 build failed on it; settings-dev tracks quattro automatically and would break as soon as it lands. Wrap only a single-line HOOKS=(...), refuse any other column-0 HOOKS=, then source the shipped files onto a Mac line and a stock line: the Mac line must come through unchanged and the stock one must not. Back up 00-omarchy-hooks.conf when it ships, and refuse it without the omarchy-hw-platform copy it asks. The test now uses the real v4.0.4 hooks file, #13362's two files and omarchy-mac-boot's 90-94 fragments, and covers upgrades over a hand-restored file.
91 lines
3.8 KiB
Plaintext
91 lines
3.8 KiB
Plaintext
# Insert omarchy-mac-encrypt after vendorfw/block and sd-encrypt immediately
|
|
# before filesystems, each only if that hook is absent. 90-omarchy-mac.conf
|
|
# already put asahi and omarchy-vendorfw before filesystems; this drop-in is
|
|
# sourced after it.
|
|
#
|
|
# Both are systemd initrd units: the systemd hook replaces udev (mkinitcpio's
|
|
# stock HOOKS line) and keymap/consolefont become sd-vconsole. A HOOKS line
|
|
# carrying the busybox encrypt hook belongs to a Mac unlocked by cryptdevice=,
|
|
# which sd-encrypt cannot parse: that line is left exactly as it is.
|
|
_omarchy_mac_encrypt_hooks=()
|
|
_omarchy_mac_encrypt_have_systemd=false
|
|
_omarchy_mac_encrypt_have_vconsole=false
|
|
_omarchy_mac_encrypt_have_encrypt=false
|
|
for _omarchy_mac_encrypt_hook in "${HOOKS[@]}"; do
|
|
case $_omarchy_mac_encrypt_hook in
|
|
systemd) _omarchy_mac_encrypt_have_systemd=true ;;
|
|
sd-vconsole) _omarchy_mac_encrypt_have_vconsole=true ;;
|
|
encrypt) _omarchy_mac_encrypt_have_encrypt=true ;;
|
|
esac
|
|
done
|
|
if [[ $_omarchy_mac_encrypt_have_encrypt == false ]]; then
|
|
for _omarchy_mac_encrypt_hook in "${HOOKS[@]}"; do
|
|
case $_omarchy_mac_encrypt_hook in
|
|
udev)
|
|
if [[ $_omarchy_mac_encrypt_have_systemd == false ]]; then
|
|
_omarchy_mac_encrypt_hooks+=(systemd)
|
|
_omarchy_mac_encrypt_have_systemd=true
|
|
fi
|
|
;;
|
|
keymap|consolefont)
|
|
if [[ $_omarchy_mac_encrypt_have_vconsole == false ]]; then
|
|
_omarchy_mac_encrypt_hooks+=(sd-vconsole)
|
|
_omarchy_mac_encrypt_have_vconsole=true
|
|
fi
|
|
;;
|
|
*) _omarchy_mac_encrypt_hooks+=("$_omarchy_mac_encrypt_hook") ;;
|
|
esac
|
|
done
|
|
if [[ $_omarchy_mac_encrypt_have_systemd == false ]]; then
|
|
if [[ ${_omarchy_mac_encrypt_hooks[0]:-} == base ]]; then
|
|
_omarchy_mac_encrypt_hooks=(base systemd "${_omarchy_mac_encrypt_hooks[@]:1}")
|
|
else
|
|
_omarchy_mac_encrypt_hooks=(systemd "${_omarchy_mac_encrypt_hooks[@]}")
|
|
fi
|
|
fi
|
|
HOOKS=("${_omarchy_mac_encrypt_hooks[@]}")
|
|
_omarchy_mac_encrypt_hooks=()
|
|
_omarchy_mac_encrypt_have_ours=false
|
|
_omarchy_mac_encrypt_have_sd=false
|
|
_omarchy_mac_encrypt_added_ours=false
|
|
_omarchy_mac_encrypt_added_sd=false
|
|
for _omarchy_mac_encrypt_hook in "${HOOKS[@]}"; do
|
|
if [[ $_omarchy_mac_encrypt_hook == omarchy-mac-encrypt ]]; then
|
|
_omarchy_mac_encrypt_have_ours=true
|
|
fi
|
|
if [[ $_omarchy_mac_encrypt_hook == sd-encrypt ]]; then
|
|
_omarchy_mac_encrypt_have_sd=true
|
|
fi
|
|
done
|
|
for _omarchy_mac_encrypt_hook in "${HOOKS[@]}"; do
|
|
if [[ $_omarchy_mac_encrypt_hook == sd-encrypt && $_omarchy_mac_encrypt_have_ours == false &&
|
|
$_omarchy_mac_encrypt_added_ours == false ]]; then
|
|
_omarchy_mac_encrypt_hooks+=(omarchy-mac-encrypt)
|
|
_omarchy_mac_encrypt_added_ours=true
|
|
fi
|
|
if [[ $_omarchy_mac_encrypt_hook == filesystems ]]; then
|
|
if [[ $_omarchy_mac_encrypt_have_ours == false && $_omarchy_mac_encrypt_added_ours == false ]]; then
|
|
_omarchy_mac_encrypt_hooks+=(omarchy-mac-encrypt)
|
|
_omarchy_mac_encrypt_added_ours=true
|
|
fi
|
|
if [[ $_omarchy_mac_encrypt_have_sd == false && $_omarchy_mac_encrypt_added_sd == false ]]; then
|
|
_omarchy_mac_encrypt_hooks+=(sd-encrypt)
|
|
_omarchy_mac_encrypt_added_sd=true
|
|
fi
|
|
fi
|
|
_omarchy_mac_encrypt_hooks+=("$_omarchy_mac_encrypt_hook")
|
|
done
|
|
if [[ $_omarchy_mac_encrypt_have_ours == false && $_omarchy_mac_encrypt_added_ours == false ]]; then
|
|
_omarchy_mac_encrypt_hooks+=(omarchy-mac-encrypt)
|
|
fi
|
|
if [[ $_omarchy_mac_encrypt_have_sd == false && $_omarchy_mac_encrypt_added_sd == false ]]; then
|
|
_omarchy_mac_encrypt_hooks+=(sd-encrypt)
|
|
fi
|
|
HOOKS=("${_omarchy_mac_encrypt_hooks[@]}")
|
|
fi
|
|
unset _omarchy_mac_encrypt_hooks _omarchy_mac_encrypt_hook \
|
|
_omarchy_mac_encrypt_have_ours _omarchy_mac_encrypt_have_sd \
|
|
_omarchy_mac_encrypt_added_ours _omarchy_mac_encrypt_added_sd \
|
|
_omarchy_mac_encrypt_have_systemd _omarchy_mac_encrypt_have_vconsole \
|
|
_omarchy_mac_encrypt_have_encrypt
|