fix: Lazily fetch external modules only if needed

This commit is contained in:
UGA Innovation Factory
2026-01-27 15:05:52 -05:00
parent 1a7bf29448
commit 540f5feb78
6 changed files with 86 additions and 22 deletions

View File

@@ -13,13 +13,21 @@
# Options are defined in fleet-option.nix for early availability.
let
# Helper: Resolve external module path from fetchGit/fetchTarball/path
# Helper: Resolve external module path (with lazy Git fetching)
resolveExternalPath =
external:
if external == null then
null
# New format: { url, rev, submodules? } - only fetch when needed
else if builtins.isAttrs external && external ? url && external ? rev then
(builtins.fetchGit {
inherit (external) url rev;
submodules = external.submodules or false;
}).outPath
# Legacy: pre-fetched derivation/package
else if builtins.isAttrs external && external ? outPath then
external.outPath
# Direct path
else
external;