Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
46 lines
894 B
Nix
46 lines
894 B
Nix
let
|
|
mirrors = import ./mirrors.nix;
|
|
in
|
|
|
|
{
|
|
rewriteURL,
|
|
system,
|
|
}:
|
|
|
|
{
|
|
url ? builtins.head urls,
|
|
urls ? [ ],
|
|
sha256 ? "",
|
|
hash ? "",
|
|
name ? baseNameOf (toString url),
|
|
}:
|
|
|
|
# assert exactly one hash is set
|
|
assert hash != "" || sha256 != "";
|
|
assert hash != "" -> sha256 == "";
|
|
|
|
import <nix/fetchurl.nix> {
|
|
inherit
|
|
system
|
|
hash
|
|
sha256
|
|
name
|
|
;
|
|
|
|
url =
|
|
# Handle mirror:// URIs. Since <nix/fetchurl.nix> currently
|
|
# supports only one URI, use the first listed mirror.
|
|
let
|
|
url_ =
|
|
let
|
|
u = rewriteURL url;
|
|
in
|
|
if builtins.isString u then
|
|
u
|
|
else
|
|
throw "rewriteURL deleted the only URL passed to fetchurlBoot (was ${url})";
|
|
m = builtins.match "mirror://([a-z]+)/(.*)" url_;
|
|
in
|
|
if m == null then url_ else builtins.head (mirrors.${builtins.elemAt m 0}) + (builtins.elemAt m 1);
|
|
}
|