summaryrefslogtreecommitdiff
path: root/build_files/patch-bazzite-deck-identity.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build_files/patch-bazzite-deck-identity.sh')
-rwxr-xr-xbuild_files/patch-bazzite-deck-identity.sh35
1 files changed, 35 insertions, 0 deletions
diff --git a/build_files/patch-bazzite-deck-identity.sh b/build_files/patch-bazzite-deck-identity.sh
new file mode 100755
index 0000000..078b76c
--- /dev/null
+++ b/build_files/patch-bazzite-deck-identity.sh
@@ -0,0 +1,35 @@
+#!/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* ]]; then'
+
+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
+
+patched_file=$(mktemp)
+trap 'rm -f "$patched_file"' EXIT
+
+awk \
+ -v old_condition="$old_condition" \
+ -v new_condition="$new_condition" \
+ '$0 == old_condition {
+ print new_condition
+ next
+ }
+ { print }' "$hardware_setup" > "$patched_file"
+
+cp "$patched_file" "$hardware_setup"
+
+grep -Fqx "$new_condition" "$hardware_setup"