fetchFromRadicle: init
This commit is contained in:
@@ -896,6 +896,24 @@ If `fetchSubmodules` is `true`, `fetchFromSourcehut` uses `fetchgit`
|
||||
or `fetchhg` with `fetchSubmodules` or `fetchSubrepos` set to `true`,
|
||||
respectively. Otherwise, the fetcher uses `fetchzip`.
|
||||
|
||||
## `fetchFromRadicle` {#fetchfromradicle}
|
||||
|
||||
This is used with Radicle repositories. The arguments expected are similar to `fetchgit`.
|
||||
|
||||
Requires a `seed` argument (e.g. `seed.radicle.xyz` or `rosa.radicle.xyz`) and a `repo` argument
|
||||
(the repository id *without* the `rad:` prefix). Also accepts an optional `node` argument which
|
||||
contains the id of the node from which to fetch the specified ref. If `node` is `null` (the
|
||||
default), a canonical ref is fetched instead.
|
||||
|
||||
```nix
|
||||
fetchFromRadicle {
|
||||
seed = "seed.radicle.xyz";
|
||||
repo = "z3gqcJUoA1n9HaHKufZs5FCSGazv5"; # heartwood
|
||||
tag = "releases/1.3.0";
|
||||
hash = "sha256-4o88BWKGGOjCIQy7anvzbA/kPOO+ZsLMzXJhE61odjw=";
|
||||
}
|
||||
```
|
||||
|
||||
## `requireFile` {#requirefile}
|
||||
|
||||
`requireFile` allows requesting files that cannot be fetched automatically, but whose content is known.
|
||||
|
||||
@@ -1657,6 +1657,9 @@
|
||||
"fetchfromsourcehut": [
|
||||
"index.html#fetchfromsourcehut"
|
||||
],
|
||||
"fetchfromradicle": [
|
||||
"index.html#fetchfromradicle"
|
||||
],
|
||||
"requirefile": [
|
||||
"index.html#requirefile"
|
||||
],
|
||||
|
||||
44
pkgs/build-support/fetchradicle/default.nix
Normal file
44
pkgs/build-support/fetchradicle/default.nix
Normal file
@@ -0,0 +1,44 @@
|
||||
{ lib, fetchgit }:
|
||||
|
||||
lib.makeOverridable (
|
||||
{
|
||||
seed,
|
||||
repo,
|
||||
node ? null,
|
||||
rev ? null,
|
||||
tag ? null,
|
||||
...
|
||||
}@args:
|
||||
|
||||
assert lib.assertMsg (lib.xor (tag != null) (
|
||||
rev != null
|
||||
)) "fetchFromRadicle requires one of either `rev` or `tag` to be provided (not both).";
|
||||
|
||||
let
|
||||
namespacePrefix = lib.optionalString (node != null) "refs/namespaces/${node}/";
|
||||
rev' = if tag != null then "refs/tags/${tag}" else rev;
|
||||
in
|
||||
|
||||
fetchgit (
|
||||
{
|
||||
url = "https://${seed}/${repo}.git";
|
||||
rev = "${namespacePrefix}${rev'}";
|
||||
}
|
||||
// removeAttrs args [
|
||||
"seed"
|
||||
"repo"
|
||||
"node"
|
||||
"rev"
|
||||
"tag"
|
||||
]
|
||||
)
|
||||
// {
|
||||
inherit
|
||||
seed
|
||||
repo
|
||||
node
|
||||
rev
|
||||
tag
|
||||
;
|
||||
}
|
||||
)
|
||||
@@ -697,6 +697,8 @@ with pkgs;
|
||||
|
||||
fetchFromRepoOrCz = callPackage ../build-support/fetchrepoorcz { };
|
||||
|
||||
fetchFromRadicle = callPackage ../build-support/fetchradicle { };
|
||||
|
||||
fetchgx = callPackage ../build-support/fetchgx { };
|
||||
|
||||
fetchPypi = callPackage ../build-support/fetchpypi { };
|
||||
|
||||
Reference in New Issue
Block a user