nixpkgs/pkgs/top-level/template.nix

46 lines
1.1 KiB
Nix
Raw Normal View History

args:
let
defList = [
(assert false) - correct it; List element is of form ["name" default]
];
#stdenv and fetchurl are added automatically
getVal = (args.lib.getValue args defList);
check = args.lib.checkFlag args;
reqsList = [
(assert false) - correct it; List element is of form ["name" "requirement-name" ... ]
["true"]
["false"]
];
buildInputsNames = args.lib.filter (x: (null!=getVal x))
(args.lib.uniqList {inputList =
(args.lib.concatLists (map
(x:(if (x==[]) then [] else builtins.tail x))
reqsList));});
configFlags = [
"true" ""
(assert false) - fill it; list consists of pairs "condition" "flags". "True" means always.
];
nameSuffixes = [
(assert false) - fill it if needed, or blank it.
];
in
assert args.lib.checkReqs args defList reqsList;
with args;
args.stdenv.mkDerivation {
name = args.lib.condConcat "
#Fill the name //
" nameSuffixes check;
src = args.
#Put fetcher here
buildInputs = args.lib.filter (x: x!=null) (map getVal buildInputsNames);
configureFlags = args.lib.condConcat "" configFlags check;
meta = {
description = "
#Fill description here
";
};
}