From 6b96741ba12a060ee67d0b9f964e0e3ec7e36a94 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Tue, 18 Aug 2026 17:44:50 +0200 Subject: modules/direnv/pre-cache: Remove `nix build` from hot path --- modules/by-name/di/direnv/pre-cache.sh | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'modules/by-name/di/direnv/pre-cache.sh') diff --git a/modules/by-name/di/direnv/pre-cache.sh b/modules/by-name/di/direnv/pre-cache.sh index 8c43a556..d2174f98 100755 --- a/modules/by-name/di/direnv/pre-cache.sh +++ b/modules/by-name/di/direnv/pre-cache.sh @@ -50,24 +50,32 @@ _pre_cache_build_shells() { installables="" for lang in "$@"; do - new_part="$REPO#devShells.$system.$lang" + lang_cache="$final_cache/$lang" - if [ -z "$installables" ]; then - installables="$new_part" - else - installables="$installables $new_part" + if ! [ -f "$lang_cache" ]; then + new_part="$REPO#devShells.$system.$lang" + + if [ -z "$installables" ]; then + installables="$new_part" + else + installables="$installables $new_part" + fi fi done - # We want shell-spliting - # shellcheck disable=SC2086 - _nix build --no-link $installables + if [ -n "$installables" ]; then + _pre_cache_log "Building '$installables'..." + # We want shell-spliting + # shellcheck disable=SC2086 + _nix build --no-link $installables + fi } pre_cache_load() { _pre_cache_preflight + # Build all not-yet build shells concurrently. That speeds up the initial load. _pre_cache_build_shells "$@" for lan in "$@"; do -- cgit v1.3.1