diff --git a/modules/home-environment.nix b/modules/home-environment.nix index 38576260..e186dd6c 100644 --- a/modules/home-environment.nix +++ b/modules/home-environment.nix @@ -676,6 +676,33 @@ in ${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 pkgs.runCommand "home-manager-generation" @@ -685,6 +712,8 @@ in '' mkdir -p $out + ${getVersion} > $out/hm-version + cp ${activationScript} $out/activate mkdir $out/bin