aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules/by-name/di/direnv/module.nix4
-rwxr-xr-xmodules/by-name/di/direnv/pre-cache.sh8
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"