aboutsummaryrefslogtreecommitdiffstats
path: root/modules/by-name/di
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xmodules/by-name/di/direnv/pre-cache.sh24
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