home-environment: add hm-version file

This commits adds a file `hm-version` to the generated generation
directory. This file will contain the release version, and if
available, the Git commit hash.

(cherry picked from commit 32fe7d2ebb)
This commit is contained in:
Robert Helgesson 2022-10-27 14:47:50 +02:00
parent f0ecd4b1db
commit 2a4d5e6f44
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89

View file

@ -676,6 +676,33 @@ in
${activationCmds} ${activationCmds}
''; '';
getVersion = pkgs.writeShellScript "get-hm-version" ''
set -euo pipefail
cd "${../.}" || exit 1
# Get the base release and initialize an empty version suffix.
release=$(< .release)
suffix=""
# If we are in a Git repo then update the suffix to be
#
# .git.HASH
#
# where HASH are the first 8 characters of the commit hash.
if [[ -f .git/HEAD ]]; then
ref=$(sed '/ref:/ { s/.* //; }' .git/HEAD)
if [[ -f ".git/$ref" ]]; then
hash=$(< ".git/$ref")
if [[ -n "$hash" ]]; then
suffix=".git.''${hash:0:8}"
fi
fi
fi
echo "$release$suffix"
'';
in in
pkgs.runCommand pkgs.runCommand
"home-manager-generation" "home-manager-generation"
@ -685,6 +712,8 @@ in
'' ''
mkdir -p $out mkdir -p $out
${getVersion} > $out/hm-version
cp ${activationScript} $out/activate cp ${activationScript} $out/activate
mkdir $out/bin mkdir $out/bin