2016-02-27 22:27:24 +03:00
|
|
|
let mirrors = import ./mirrors.nix; in
|
|
|
|
|
|
|
|
{ system }:
|
|
|
|
|
|
|
|
{ url ? builtins.head urls
|
|
|
|
, urls ? []
|
|
|
|
, sha256
|
2017-08-04 09:22:04 +03:00
|
|
|
, name ? baseNameOf (toString url)
|
2016-02-27 22:27:24 +03:00
|
|
|
}:
|
|
|
|
|
|
|
|
import <nix/fetchurl.nix> {
|
2017-08-04 09:22:04 +03:00
|
|
|
inherit system sha256 name;
|
2016-02-27 22:27:24 +03:00
|
|
|
|
|
|
|
url =
|
|
|
|
# Handle mirror:// URIs. Since <nix/fetchurl.nix> 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);
|
|
|
|
}
|