core/pkgs/build-support/fetchurl/boot.nix

24 lines
634 B
Nix
Raw Normal View History

2024-05-13 21:24:10 +00:00
let mirrors = import ./mirrors.nix;
2024-05-02 00:46:19 +00:00
2024-05-13 21:24:10 +00:00
in { system }:
2024-05-02 00:46:19 +00:00
2024-05-13 21:24:10 +00:00
{ url ? builtins.head urls, urls ? [ ], sha256 ? "", hash ? ""
, name ? baseNameOf (toString url) }:
2024-05-02 00:46:19 +00:00
# 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.
2024-05-13 21:24:10 +00:00
let 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);
2024-05-02 00:46:19 +00:00
}