* Die tabs die. Also, renamed FullDepEntry and PackEntry to

fullDepEntry and packEntry for consistency.

svn path=/nixpkgs/trunk/; revision=15549
This commit is contained in:
Eelco Dolstra 2009-05-11 11:55:05 +00:00
parent 27152e987a
commit 2f33cdec38

View file

@ -13,64 +13,45 @@ Usage:
See trace/nixpkgs/trunk/pkgs/top-level/builder-defs.nix for some predefined build steps See trace/nixpkgs/trunk/pkgs/top-level/builder-defs.nix for some predefined build steps
*/ */
args: args:
with args;
with lib; with args;
let with lib;
inherit (builtins)
head tail isList isAttrs; let
inherit (builtins) head tail isList isAttrs;
in in
rec { rec {
/* textClosureDupList = arg:
let shelllib = rec { if isList arg then
a= { textClosureDupList {text = ""; deps = arg;}
text = "aaaa"; else
deps = [b c]; concatLists (map textClosureDupList arg.deps) ++ [arg];
};
b = {
text = "b";
};
c = {
text = "c";
deps = [];
};
};
in
[textClosure [shelllib.a]
textclosure shelllib.a];
textClosureDupListOverridable = predefined: arg:
*/ if isList arg then
textClosureDupListOverridable predefined {text = ""; deps = arg;}
textClosureDupList = arg: else if isAttrs arg then
( concatLists (map (textClosureDupListOverridable predefined) arg.deps) ++ [arg]
if isList arg then else
textClosureDupList {text = ""; deps = arg;} textClosureDupListOverridable predefined (getAttr [arg] [] predefined);
else
(concatLists (map textClosureDupList arg.deps)) ++ [arg]
);
textClosureDupListOverridable = predefined: arg: textClosureListOverridable = predefined: arg:
( map (x: x.text) (uniqList {inputList = textClosureDupListOverridable predefined arg;});
if isList arg then
textClosureDupListOverridable predefined {text = ""; deps = arg;} textClosureOverridable = predefined: arg: concatStringsSep "\n" (textClosureListOverridable predefined arg);
else if isAttrs arg then
(concatLists (map (textClosureDupListOverridable predefined) arg.deps)) ++ [arg] textClosureMapOveridable = f: predefined: arg:
else concatStringsSep "\n" (map f (textClosureListOverridable predefined arg));
textClosureDupListOverridable predefined (getAttr [arg] [] predefined)
);
textClosureListOverridable = predefined: arg: noDepEntry = text: {inherit text; deps = [];};
(map (x : x.text) fullDepEntry = text: deps: {inherit text deps;};
(uniqList {inputList = textClosureDupListOverridable predefined arg;})); packEntry = deps: {inherit deps; text="";};
textClosureOverridable = predefined: arg: concatStringsSep "\n" (textClosureListOverridable predefined arg);
textClosureMapOveridable = f: predefined: arg:
concatStringsSep "\n" (map f (textClosureListOverridable predefined arg));
noDepEntry = text : {inherit text;deps = [];}; # Old names - don't use.
FullDepEntry = text : deps: {inherit text deps;}; FullDepEntry = fullDepEntry;
PackEntry = deps: {inherit deps; text="";}; PackEntry = packEntry;
} }