nixpkgs-suyu/pkgs/build-support/fetchmtn/default.nix

33 lines
1.1 KiB
Nix
Raw Normal View History

# You can specify some extra mirrors and a cache DB via options
{stdenv, monotone, defaultDBMirrors ? [], cacheDB ? ""}:
# dbs is a list of strings
# each is an url for sync
# selector is mtn selector, like h:org.example.branch
#
{name ? "", dbs ? [], selector ? "", branch, md5 ? "", sha1 ? "", sha256 ? ""}:
stdenv.mkDerivation {
name = if name != "" then name else "mtn-checkout";
builder = ./builder.sh;
buildInputs = [monotone];
outputHashAlgo = if sha256 == "" then (if sha1 == "" then "md5" else "sha1") else "sha256";
outputHashMode = "recursive";
outputHash = if sha256 == "" then (if sha1 == "" then md5 else sha1) else sha256;
dbs = defaultDBMirrors ++ dbs;
cacheDB = if cacheDB != "" then cacheDB else "./mtn-checkout.db";
selector = if selector != "" then selector else "h:" + branch;
inherit branch;
impureEnvVars = [
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
}