Tom Hubrecht
ecbad0a638
All checks were successful
Check workflows / check_workflows (push) Successful in 21s
Run pre-commit on all files / check (push) Successful in 24s
Check meta / check_dns (pull_request) Successful in 19s
Check meta / check_meta (pull_request) Successful in 18s
Check workflows / check_workflows (pull_request) Successful in 19s
Build all the nodes / bridge01 (pull_request) Successful in 1m13s
Build all the nodes / geo01 (pull_request) Successful in 1m14s
Build all the nodes / compute01 (pull_request) Successful in 1m44s
Build all the nodes / geo02 (pull_request) Successful in 1m12s
Build all the nodes / rescue01 (pull_request) Successful in 1m30s
Build all the nodes / storage01 (pull_request) Successful in 1m29s
Build all the nodes / vault01 (pull_request) Successful in 1m26s
Build all the nodes / web02 (pull_request) Successful in 1m19s
Run pre-commit on all files / check (pull_request) Successful in 24s
Build all the nodes / web01 (pull_request) Successful in 1m56s
Build all the nodes / web03 (pull_request) Successful in 1m25s
This adds subdirectories for the different types of systems, for the modules and the machines
65 lines
1.6 KiB
Nix
65 lines
1.6 KiB
Nix
# Generated by npins. Do not modify; will be overwritten regularly
|
|
let
|
|
data = builtins.fromJSON (builtins.readFile ./sources.json);
|
|
inherit (data) version;
|
|
|
|
mkSource =
|
|
spec:
|
|
assert spec ? type;
|
|
let
|
|
path =
|
|
if spec.type == "Git" then
|
|
mkGitSource spec
|
|
else if spec.type == "GitRelease" then
|
|
mkGitSource spec
|
|
else if spec.type == "PyPi" then
|
|
mkPyPiSource spec
|
|
else if spec.type == "Channel" then
|
|
mkChannelSource spec
|
|
else
|
|
builtins.throw "Unknown source type ${spec.type}";
|
|
in
|
|
spec // { outPath = path; };
|
|
|
|
mkGitSource =
|
|
{
|
|
repository,
|
|
revision,
|
|
url ? null,
|
|
hash,
|
|
...
|
|
}:
|
|
assert repository ? type;
|
|
# At the moment, either it is a plain git repository (which has an url), or it is a GitHub/GitLab repository
|
|
# In the latter case, there we will always be an url to the tarball
|
|
if url != null then
|
|
(builtins.fetchTarball {
|
|
inherit url;
|
|
sha256 = hash; # FIXME: check nix version & use SRI hashes
|
|
})
|
|
else
|
|
assert repository.type == "Git";
|
|
builtins.fetchGit {
|
|
inherit (repository) url;
|
|
rev = revision;
|
|
# hash = hash;
|
|
};
|
|
|
|
mkPyPiSource =
|
|
{ url, hash, ... }:
|
|
builtins.fetchurl {
|
|
inherit url;
|
|
sha256 = hash;
|
|
};
|
|
|
|
mkChannelSource =
|
|
{ url, hash, ... }:
|
|
builtins.fetchTarball {
|
|
inherit url;
|
|
sha256 = hash;
|
|
};
|
|
in
|
|
if version == 3 then
|
|
builtins.mapAttrs (_: mkSource) data.pins
|
|
else
|
|
throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`"
|