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`,
|
or `fetchhg` with `fetchSubmodules` or `fetchSubrepos` set to `true`,
|
||||||
respectively. Otherwise, the fetcher uses `fetchzip`.
|
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` {#requirefile}
|
||||||
|
|
||||||
`requireFile` allows requesting files that cannot be fetched automatically, but whose content is known.
|
`requireFile` allows requesting files that cannot be fetched automatically, but whose content is known.
|
||||||
|
|||||||
@@ -1657,6 +1657,9 @@
|
|||||||
"fetchfromsourcehut": [
|
"fetchfromsourcehut": [
|
||||||
"index.html#fetchfromsourcehut"
|
"index.html#fetchfromsourcehut"
|
||||||
],
|
],
|
||||||
|
"fetchfromradicle": [
|
||||||
|
"index.html#fetchfromradicle"
|
||||||
|
],
|
||||||
"requirefile": [
|
"requirefile": [
|
||||||
"index.html#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 { };
|
fetchFromRepoOrCz = callPackage ../build-support/fetchrepoorcz { };
|
||||||
|
|
||||||
|
fetchFromRadicle = callPackage ../build-support/fetchradicle { };
|
||||||
|
|
||||||
fetchgx = callPackage ../build-support/fetchgx { };
|
fetchgx = callPackage ../build-support/fetchgx { };
|
||||||
|
|
||||||
fetchPypi = callPackage ../build-support/fetchpypi { };
|
fetchPypi = callPackage ../build-support/fetchpypi { };
|
||||||
|
|||||||
Reference in New Issue
Block a user