aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/types/populate.nix4
-rw-r--r--pkgs/populate/default.nix8
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/types/populate.nix b/lib/types/populate.nix
index 49996f6..bf90ace 100644
--- a/lib/types/populate.nix
+++ b/lib/types/populate.nix
@@ -81,6 +81,10 @@
type = lib.types.listOf lib.types.str;
};
};
+ fetchAlways = lib.mkOption {
+ type = lib.types.bool;
+ default = false;
+ };
ref = lib.mkOption {
type = lib.types.str; # TODO lib.types.git.ref
};
diff --git a/pkgs/populate/default.nix b/pkgs/populate/default.nix
index ad70d2e..1367a50 100644
--- a/pkgs/populate/default.nix
+++ b/pkgs/populate/default.nix
@@ -66,9 +66,13 @@ let
hash=${quote source.ref}
if ! test "$(git log --format=%H -1)" = "$hash"; then
- if ! git log -1 "$hash" >/dev/null 2>&1; then
+ ${if source.fetchAlways then /* sh */ ''
git fetch origin
- fi
+ '' else /* sh */ ''
+ if ! git log -1 "$hash" >/dev/null 2>&1; then
+ git fetch origin
+ fi
+ ''}
git reset --hard "$hash" >&2
git submodule update --init --recursive
fi