mentalnet-gnu-linux/board/mentalnet/post-build.sh

32 lines
1 KiB
Bash
Executable file

#!/bin/sh
#
# post-build.sh - stamp the Mentalnet root filesystem with a build id
#
# Invoked by Buildroot (BR2_ROOTFS_POST_BUILD_SCRIPT) with the target
# directory as first argument. The same stamp is recorded in
# output/images/.mn-build-stamp so post-image.sh can name the ISO
# after the exact build that is inside it.
#
# The stamp is visible inside the guest:
# - /etc/os-release -> BUILD_ID="YYYYMMDD-HHMMSS"
# - /etc/issue -> shown above the login prompt
set -e
TARGET_DIR="${1}"
STAMP="$(date +%Y%m%d-%H%M%S)"
IMAGES_DIR="$(dirname "${TARGET_DIR}")/images"
# record the stamp for post-image.sh
mkdir -p "${IMAGES_DIR}"
echo "${STAMP}" > "${IMAGES_DIR}/.mn-build-stamp"
# /etc/os-release (regular file lives at /usr/lib/os-release)
OS_RELEASE="${TARGET_DIR}/usr/lib/os-release"
sed -i '/^BUILD_ID=/d' "${OS_RELEASE}"
echo "BUILD_ID=\"${STAMP}\"" >> "${OS_RELEASE}"
# login banner
ISSUE="${TARGET_DIR}/etc/issue"
sed -i '/^Mentalnet GNU\/Linux build /d' "${ISSUE}"
printf 'Mentalnet GNU/Linux build %s\n' "${STAMP}" >> "${ISSUE}"