Unverified Commit 3fd3d5bc authored by Philip Taron's avatar Philip Taron Committed by GitHub
Browse files

fetchgit: add preFetch hook (#404488)

parents 5eefa703 d95d3724
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -773,9 +773,14 @@ Additionally, the following optional arguments can be given:

: Whether to fetch LFS objects.

*`preFetch`* (String)

: Shell code to be executed before the repository has been fetched, to allow
  changing the environment the fetcher runs in.

*`postFetch`* (String)

: Shell code executed after the file has been fetched successfully.
: Shell code executed after the repository has been fetched successfully.
  This can do things like check or transform the file.

*`leaveDotGit`* (Boolean)
+2 −0
Original line number Diff line number Diff line
@@ -6,6 +6,8 @@

echo "exporting $url (rev $rev) into $out"

runHook preFetch

$SHELL $fetcher --builder --url "$url" --out "$out" --rev "$rev" --name "$name" \
  ${leaveDotGit:+--leave-dotGit} \
  ${fetchLFS:+--fetch-lfs} \
+6 −1
Original line number Diff line number Diff line
@@ -38,6 +38,11 @@ lib.makeOverridable (
      nonConeMode ? false,
      name ? null,
      nativeBuildInputs ? [ ],
      # Shell code executed before the file has been fetched.  This, in
      # particular, can do things like set NIX_PREFETCH_GIT_CHECKOUT_HOOK to
      # run operations between the checkout completing and deleting the .git
      # directory.
      preFetch ? "",
      # Shell code executed after the file has been fetched
      # successfully. This can do things like check or transform the file.
      postFetch ? "",
@@ -75,7 +80,6 @@ lib.makeOverridable (
      server admins start using the new version?
    */

    assert deepClone -> leaveDotGit;
    assert nonConeMode -> (sparseCheckout != [ ]);

    let
@@ -130,6 +134,7 @@ lib.makeOverridable (
          deepClone
          branchName
          nonConeMode
          preFetch
          postFetch
          ;
        rev = revWithTag;