mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-11-09 16:18:34 +01:00
fetchRadiclePatch: init
This commit is contained in:
parent
8bb4e10098
commit
c2ec9234e8
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -1669,6 +1669,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;
|
||||
}
|
||||
)
|
||||
|
|
@ -702,6 +702,7 @@ with pkgs;
|
|||
fetchFromRepoOrCz = callPackage ../build-support/fetchrepoorcz { };
|
||||
|
||||
fetchFromRadicle = callPackage ../build-support/fetchradicle { };
|
||||
fetchRadiclePatch = callPackage ../build-support/fetchradiclepatch { };
|
||||
|
||||
fetchgx = callPackage ../build-support/fetchgx { };
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue