diff options
Diffstat (limited to 'modules/by-name/di')
| -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 |
