1
1
mirror of https://github.com/nmattia/niv.git synced 2024-10-06 12:27:35 +03:00

Fetch submodules if supported, and warn if submodules are used but not supported

This commit is contained in:
Jacek Galowicz 2022-04-27 17:44:54 +02:00 committed by Nicolas Mattia
parent df49d53b71
commit 945aa20cd0
2 changed files with 24 additions and 2 deletions

View File

@ -32,9 +32,27 @@ let
if spec ? tag then "refs/tags/${spec.tag}" else
abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!";
submodules = if spec ? submodules then spec.submodules else false;
submoduleArg =
let
nixSupportsSubmodules = builtins.compareVersions builtins.nixVersion "2.4" >= 0;
emptyArgWithWarning =
if submodules == true
then
builtins.trace
(
"The niv input \"${name}\" uses submodules "
+ "but your nix's (${builtins.nixVersion}) builtins.fetchGit "
+ "does not support them"
)
{}
else {};
in
if nixSupportsSubmodules
then { inherit submodules; }
else emptyArgWithWarning;
in
builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; }
// (if builtins.compareVersions builtins.nixVersion "2.4" >= 0 then { inherit submodules; } else {});
builtins.fetchGit
({ url = spec.repo; inherit (spec) rev; inherit ref; } // submoduleArg);
fetch_local = spec: spec.path;

View File

@ -176,6 +176,8 @@ data SourcesNixVersion
V25
| -- formatting fix
V26
| -- Support submodules for git repos
V27
deriving stock (Bounded, Enum, Eq)
-- | A user friendly version
@ -207,6 +209,7 @@ sourcesVersionToText = \case
V24 -> "24"
V25 -> "25"
V26 -> "26"
V27 -> "27"
latestVersionMD5 :: T.Text
latestVersionMD5 = sourcesVersionToMD5 maxBound
@ -245,6 +248,7 @@ sourcesVersionToMD5 = \case
V24 -> "116c2d936f1847112fef0013771dab28"
V25 -> "6612caee5814670e5e4d9dd1b71b5f70"
V26 -> "937bff93370a064c9000f13cec5867f9"
V27 -> "8031ba9d8fbbc7401c800d0b84278ec8"
-- | The MD5 sum of ./nix/sources.nix
sourcesNixMD5 :: IO T.Text