diff options
| author | Defelo <mail@defelo.de> | 2025-08-30 15:05:40 +0200 |
|---|---|---|
| committer | Defelo <mail@defelo.de> | 2025-08-30 17:26:06 +0200 |
| commit | c2ec9234e8f7017ee4831ad010e9fd70118fa905 (patch) | |
| tree | 2abe442a37b06917059c9de9897d14d47255f4ad /pkgs/build-support/fetchradiclepatch | |
| parent | visidata: migrate to by-name (#437592) (diff) | |
| download | nixpkgs-c2ec9234e8f7017ee4831ad010e9fd70118fa905.tar.gz | |
fetchRadiclePatch: init
Diffstat (limited to 'pkgs/build-support/fetchradiclepatch')
| -rw-r--r-- | pkgs/build-support/fetchradiclepatch/default.nix | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/build-support/fetchradiclepatch/default.nix b/pkgs/build-support/fetchradiclepatch/default.nix new file mode 100644 index 000000000000..22f9ea6c4817 --- /dev/null +++ b/pkgs/build-support/fetchradiclepatch/default.nix @@ -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; + } +) |
