diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-08-18 17:44:50 +0200 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-08-18 17:44:50 +0200 |
| commit | 6b96741ba12a060ee67d0b9f964e0e3ec7e36a94 (patch) | |
| tree | d1625ea80a7156cb1a802f64e1fe42591f72c5aa /modules/by-name/di/direnv/pre-cache.sh | |
| parent | modules/direnv/pre_cache: Don't force delete the tmp_profile (diff) | |
| download | nixos-config-6b96741ba12a060ee67d0b9f964e0e3ec7e36a94.zip | |
modules/direnv/pre-cache: Remove `nix build` from hot path
Diffstat (limited to 'modules/by-name/di/direnv/pre-cache.sh')
| -rwxr-xr-x | modules/by-name/di/direnv/pre-cache.sh | 24 |
1 files changed, 16 insertions, 8 deletions
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 |
