Unverified Commit 9c9f9a44 authored by Matthias Beyer's avatar Matthias Beyer Committed by GitHub
Browse files

fetchRadiclePatch: init (#438646)

parents c98bdb46 c2ec9234
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -914,6 +914,21 @@ fetchFromRadicle {
}
```

## `fetchRadiclePatch` {#fetchradiclepatch}

`fetchRadiclePatch` works very similarly to `fetchFromRadicle` with almost the same arguments
expected. However, instead of a `rev` or `tag` argument, a `revision` argument is expected, which
contains the full revision id of the Radicle patch to fetch.

```nix
fetchRadiclePatch {
  seed = "rosa.radicle.xyz";
  repo = "z4V1sjrXqjvFdnCUbxPFqd5p4DtH5"; # radicle-explorer
  revision = "d97d872386c70607beda2fb3fc2e60449e0f4ce4"; # patch: d77e064
  hash = "sha256-ttnNqj0lhlSP6BGzEhhUOejKkkPruM9yMwA5p9Di4bk=";
}
```

## `requireFile` {#requirefile}

`requireFile` allows requesting files that cannot be fetched automatically, but whose content is known.
+3 −0
Original line number Diff line number Diff line
@@ -1675,6 +1675,9 @@
  "fetchfromradicle": [
    "index.html#fetchfromradicle"
  ],
  "fetchradiclepatch": [
    "index.html#fetchradiclepatch"
  ],
  "requirefile": [
    "index.html#requirefile"
  ],
+43 −0
Original line number Diff line number Diff line
{
  fetchFromRadicle,
  jq,
  lib,
}:

lib.makeOverridable (
  {
    revision,
    postFetch ? "",
    nativeBuildInputs ? [ ],
    ...
  }@args:

  assert lib.assertMsg (
    !args ? rev && !args ? tag
  ) "fetchRadiclePatch does not accept `rev` or `tag` arguments.";

  fetchFromRadicle (
    {
      nativeBuildInputs = [ jq ] ++ nativeBuildInputs;
      rev = revision;
      leaveDotGit = true;
      postFetch = ''
        { read -r head; read -r base; } < <(jq -r '.oid, .base' $out/0)
        git -C $out fetch --depth=1 "$url" "$base" "$head"
        git -C $out diff "$base" "$head" > patch
        rm -r $out
        mv patch $out
        ${postFetch}
      '';
    }
    // removeAttrs args [
      "revision"
      "postFetch"
      "nativeBuildInputs"
      "leaveDotGit"
    ]
  )
  // {
    inherit revision;
  }
)
+1 −0
Original line number Diff line number Diff line
@@ -692,6 +692,7 @@ with pkgs;
  fetchFromRepoOrCz = callPackage ../build-support/fetchrepoorcz { };

  fetchFromRadicle = callPackage ../build-support/fetchradicle { };
  fetchRadiclePatch = callPackage ../build-support/fetchradiclepatch { };

  fetchgx = callPackage ../build-support/fetchgx { };