mirror of
https://cgit.krebsco.de/krops
synced 2024-11-23 03:29:48 +01:00
add shallow
option to git source type
This commit is contained in:
parent
3e731035ed
commit
54eb1c89cf
3 changed files with 23 additions and 3 deletions
|
@ -242,6 +242,10 @@ Supported attributes:
|
|||
* `clean.exclude` -
|
||||
List of patterns that should be excluded from Git cleaning.
|
||||
|
||||
* `shallow` (optional)
|
||||
boolean that controls whether only the requested commit ref. should be fetched
|
||||
instead of the whole history, to save disk space and bandwith. Defaults to `false`.
|
||||
|
||||
|
||||
### `pass`
|
||||
|
||||
|
|
|
@ -140,6 +140,10 @@
|
|||
url = lib.mkOption {
|
||||
type = lib.types.str; # TODO lib.types.git.url
|
||||
};
|
||||
shallow = lib.mkOption {
|
||||
default = false;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
};
|
||||
};
|
||||
pass = lib.types.submodule {
|
||||
|
|
|
@ -53,7 +53,11 @@ let
|
|||
pop.git = target: source: runShell target /* sh */ ''
|
||||
set -efu
|
||||
if ! test -e ${quote target.path}; then
|
||||
${if source.shallow then /* sh */ ''
|
||||
git init ${quote target.path}
|
||||
'' else /* sh */ ''
|
||||
git clone --recurse-submodules ${quote source.url} ${quote target.path}
|
||||
''}
|
||||
fi
|
||||
cd ${quote target.path}
|
||||
if ! url=$(git config remote.origin.url); then
|
||||
|
@ -67,10 +71,18 @@ let
|
|||
|
||||
if ! test "$(git log --format=%H -1)" = "$hash"; then
|
||||
${if source.fetchAlways then /* sh */ ''
|
||||
${if source.shallow then /* sh */ ''
|
||||
git fetch --depth=1 origin "$hash"
|
||||
'' else /* sh */ ''
|
||||
git fetch origin
|
||||
''}
|
||||
'' else /* sh */ ''
|
||||
if ! git log -1 "$hash" >/dev/null 2>&1; then
|
||||
${if source.shallow then /* sh */ ''
|
||||
git fetch --depth=1 origin "$hash"
|
||||
'' else /* sh */ ''
|
||||
git fetch origin
|
||||
''}
|
||||
fi
|
||||
''}
|
||||
git reset --hard "$hash" >&2
|
||||
|
|
Loading…
Reference in a new issue