summaryrefslogtreecommitdiff
path: root/build_files
diff options
context:
space:
mode:
Diffstat (limited to 'build_files')
-rwxr-xr-xbuild_files/build.sh1
-rwxr-xr-xbuild_files/image-info2
-rwxr-xr-xbuild_files/patch-bazzite-deck-identity.sh47
3 files changed, 49 insertions, 1 deletions
diff --git a/build_files/build.sh b/build_files/build.sh
index b89907a..3d37e31 100755
--- a/build_files/build.sh
+++ b/build_files/build.sh
@@ -34,3 +34,4 @@ fi
find /etc/environment.d /etc/skel/.config/environment.d -name 99-aerocore-mirrors.conf -type f -exec chmod 0644 {} + 2>/dev/null || true
/ctx/install-instruments.sh
+/ctx/patch-bazzite-deck-identity.sh
diff --git a/build_files/image-info b/build_files/image-info
index 6c13612..84c6495 100755
--- a/build_files/image-info
+++ b/build_files/image-info
@@ -33,7 +33,7 @@ cat > "$IMAGE_INFO" <<EOF
"image-ref": "$IMAGE_REF",
"image-tag": "stable",
"image-branch": "$IMAGE_BRANCH_NORMALIZED",
- "base-image-name": "bazzite-deck",
+ "base-image-name": "$BASE_IMAGE_NAME",
"fedora-version": "$FEDORA_VERSION",
"version": "$VERSION_TAG",
"version-pretty": "$VERSION_PRETTY"
diff --git a/build_files/patch-bazzite-deck-identity.sh b/build_files/patch-bazzite-deck-identity.sh
new file mode 100755
index 0000000..600d97e
--- /dev/null
+++ b/build_files/patch-bazzite-deck-identity.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/bash
+
+set -euo pipefail
+
+hardware_setup="${1:-/usr/libexec/bazzite-hardware-setup}"
+# These are literal source lines; variable expansion must happen at boot time.
+# shellcheck disable=SC2016
+old_condition='if [[ "$IMAGE_NAME" != *deck* && "$IMAGE_NAME" != *dx* ]]; then'
+# shellcheck disable=SC2016
+new_condition='if [[ "$IMAGE_NAME" != aerocore-os && "$IMAGE_NAME" != *deck* && "$IMAGE_NAME" != *dx* && "$BASE_IMAGE_NAME" != *deck* && "$BASE_IMAGE_NAME" != *dx* ]]; then'
+# shellcheck disable=SC2016
+base_image_assignment='BASE_IMAGE_NAME=$(jq -r '\''."base-image-name"'\'' < $IMAGE_INFO)'
+
+if grep -Fqx "$new_condition" "$hardware_setup"; then
+ exit 0
+fi
+
+if [[ "$(grep -Fxc "$old_condition" "$hardware_setup")" -ne 1 ]]; then
+ echo "Unable to locate the Bazzite Deck image check in $hardware_setup" >&2
+ exit 1
+fi
+
+add_base_image_assignment=0
+if ! grep -Fqx "$base_image_assignment" "$hardware_setup"; then
+ add_base_image_assignment=1
+fi
+
+patched_file=$(mktemp)
+trap 'rm -f "$patched_file"' EXIT
+
+awk \
+ -v old_condition="$old_condition" \
+ -v new_condition="$new_condition" \
+ -v base_image_assignment="$base_image_assignment" \
+ -v add_base_image_assignment="$add_base_image_assignment" \
+ '$0 == old_condition {
+ if (add_base_image_assignment) {
+ print base_image_assignment
+ }
+ print new_condition
+ next
+ }
+ { print }' "$hardware_setup" > "$patched_file"
+
+cp "$patched_file" "$hardware_setup"
+
+grep -Fqx "$new_condition" "$hardware_setup"