#!/usr/bin/env bash
# Write the os-release that the Himmelblau daemons see (10-os-release.conf):
# the image's /usr/lib/os-release with VERSION_ID set to the full image version
# (OSTREE_VERSION, e.g. 44.20261019.0), so Intune shows the build and not just
# "44". Himmelblau reports VERSION_ID as the device's OS version and has no
# setting for it. The rest of the system keeps the stock VERSION_ID, which
# toolbox, flatpak and dnf expect to be the plain release.
#
# PRETTY_NAME becomes just NAME: libhimmelblau reports "PRETTY_NAME VERSION_ID"
# as the OS version string, and Fedora's PRETTY_NAME already contains the
# version ("Fedora Linux 44.20261020.0 (Forty Four) 44.20261020.0"). Nothing
# else in Himmelblau reads PRETTY_NAME.
set -euo pipefail

SRC=/usr/lib/os-release
DEST=/run/himmelblau-os-release

version="$(. "${SRC}" && echo "${OSTREE_VERSION:-${IMAGE_VERSION:-}}")"
name="$(. "${SRC}" && echo "${NAME:-Linux}")"

tmp="$(mktemp "${DEST}.XXXXXX")"
if [[ -n "${version}" ]]; then
  sed -e "s/^VERSION_ID=.*/VERSION_ID=${version}/" \
      -e "s/^PRETTY_NAME=.*/PRETTY_NAME=\"${name}\"/" "${SRC}" > "${tmp}"
else
  # No image version (not an ostree/bootc deployment): pass it through as-is.
  cat "${SRC}" > "${tmp}"
fi
chmod 0644 "${tmp}"
mv -f "${tmp}" "${DEST}"
