Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 25 additions & 13 deletions builder/image.requirements
Original file line number Diff line number Diff line change
@@ -1,21 +1,33 @@
#!/usr/bin/env bash

set -eufo pipefail
set -euo pipefail

uefi=false
secureboot=false
tpm2=false
features_dir="${FEATURES_DIR:-/builder/features}"

# Scan all requirements.mod files to find all possible modifiers and set defaults
for req_mod in "$features_dir"/*/requirements.mod; do
[ -e "$req_mod" ] || continue
while IFS='=' read -r key _; do
[[ $key =~ ^[a-z_][a-z0-9_]*$ ]] && declare "$key=false"
done < <(grep -E '^[a-z_][a-z0-9_]*=' "$req_mod")
done

# Source requirements.mod files for selected features to override defaults
IFS=',' read -r -a features <<< "$BUILDER_FEATURES"
for feature in "${features[@]}"; do
if [ -e "/builder/features/$feature/requirements.mod" ]; then
source "/builder/features/$feature/requirements.mod"
fi
[ -z "$feature" ] && continue
req_file="$features_dir/$feature/requirements.mod"
# shellcheck source=/dev/null
[ -e "$req_file" ] && source "$req_file"
Comment thread
github-advanced-security[bot] marked this conversation as resolved.
Fixed
done

cat > "$2" << EOF
arch=$BUILDER_ARCH
uefi=$uefi
secureboot=$secureboot
tpm2=$tpm2
EOF
# Output all modifiers
{
echo "arch=$BUILDER_ARCH"
for req_mod in "$features_dir"/*/requirements.mod; do
[ -e "$req_mod" ] || continue
while IFS='=' read -r key _; do
[[ $key =~ ^[a-z_][a-z0-9_]*$ ]] && echo "$key=${!key}"
done < <(grep -E '^[a-z_][a-z0-9_]*=' "$req_mod")
done | sort -u
} > "$2"
Loading