let mirrors = import ./mirrors.nix; in { 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 { inherit system hash sha256 name ; url = # Handle mirror:// URIs. Since currently # supports only one URI, use the first listed mirror. 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); }