fetchRadiclePatch: init (#438646)
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -1675,6 +1675,9 @@
|
||||
"fetchfromradicle": [
|
||||
"index.html#fetchfromradicle"
|
||||
],
|
||||
"fetchradiclepatch": [
|
||||
"index.html#fetchradiclepatch"
|
||||
],
|
||||
"requirefile": [
|
||||
"index.html#requirefile"
|
||||
],
|
||||
|
||||
43
pkgs/build-support/fetchradiclepatch/default.nix
Normal file
43
pkgs/build-support/fetchradiclepatch/default.nix
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
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;
|
||||
}
|
||||
)
|
||||
@@ -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 { };
|
||||
|
||||
|
||||
Reference in New Issue
Block a user