diff options
Diffstat (limited to 'modules/by-name/di/direnv')
| -rw-r--r-- | modules/by-name/di/direnv/module.nix | 4 | ||||
| -rwxr-xr-x | modules/by-name/di/direnv/pre-cache.sh | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/modules/by-name/di/direnv/module.nix b/modules/by-name/di/direnv/module.nix index 743375af..642ac040 100644 --- a/modules/by-name/di/direnv/module.nix +++ b/modules/by-name/di/direnv/module.nix @@ -22,7 +22,9 @@ cat "${./pre-cache.sh}" > $out substituteInPlace $out \ - --replace-fail "%DEVSHELLS_REPO%" "${devshells}" + --replace-fail "%DEVSHELLS_REPO%" "${devshells}" \ + --replace-fail "%DEVSHELLS_REPO_REF%" "${devshells.sourceInfo.rev}" + ''; in { options.soispha.programs.direnv = { diff --git a/modules/by-name/di/direnv/pre-cache.sh b/modules/by-name/di/direnv/pre-cache.sh index 13c0cd37..883689f1 100755 --- a/modules/by-name/di/direnv/pre-cache.sh +++ b/modules/by-name/di/direnv/pre-cache.sh @@ -7,12 +7,12 @@ _pre_cache_preflight() { set -eu _nix_direnv_preflight - repo="%DEVSHELLS_REPO%" + REPO="%DEVSHELLS_REPO%" system="x86_64-linux" cache_dir="$XDG_CACHE_HOME/pre_cache" [ -d "$cache_dir" ] || mkdir --parents "$cache_dir" - repo_ref=$(git -C "$repo" rev-parse HEAD) + repo_ref="%DEVSHELLS_REPO_REF%" final_cache="$cache_dir/$repo_ref" if ! [ -d "$final_cache" ]; then @@ -36,7 +36,7 @@ _pre_cache_load_shell() { profile="$final_cache/__profile" # It does not already exists, we need to evaluate it. - _nix print-dev-env --profile "$tmp_profile" "$repo#$lang" >"$lang_cache" + _nix print-dev-env --profile "$tmp_profile" "$REPO#$lang" >"$lang_cache" _nix_add_gcroot "$tmp_profile" "$profile" rm "$tmp_profile" "$tmp_profile"* @@ -50,7 +50,7 @@ _pre_cache_build_shells() { installables="" for lang in "$@"; do - new_part="$repo#devShells.$system.$lang" + new_part="$REPO#devShells.$system.$lang" if [ -z "$installables" ]; then installables="$new_part" |
