* 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

@ -14,63 +14,44 @@ Usage:
*/ */
args: args:
with args; with args;
with lib; with lib;
let let
inherit (builtins) inherit (builtins) head tail isList isAttrs;
head tail isList isAttrs;
in in
rec { rec {
/*
let shelllib = rec {
a= {
text = "aaaa";
deps = [b c];
};
b = {
text = "b";
};
c = {
text = "c";
deps = [];
};
};
in
[textClosure [shelllib.a]
textclosure shelllib.a];
*/
textClosureDupList = arg: textClosureDupList = arg:
(
if isList arg then if isList arg then
textClosureDupList {text = ""; deps = arg;} textClosureDupList {text = ""; deps = arg;}
else else
(concatLists (map textClosureDupList arg.deps)) ++ [arg] concatLists (map textClosureDupList arg.deps) ++ [arg];
);
textClosureDupListOverridable = predefined: arg: textClosureDupListOverridable = predefined: arg:
(
if isList arg then if isList arg then
textClosureDupListOverridable predefined {text = ""; deps = arg;} textClosureDupListOverridable predefined {text = ""; deps = arg;}
else if isAttrs arg then else if isAttrs arg then
(concatLists (map (textClosureDupListOverridable predefined) arg.deps)) ++ [arg] concatLists (map (textClosureDupListOverridable predefined) arg.deps) ++ [arg]
else else
textClosureDupListOverridable predefined (getAttr [arg] [] predefined) textClosureDupListOverridable predefined (getAttr [arg] [] predefined);
);
textClosureListOverridable = predefined: arg: textClosureListOverridable = predefined: arg:
(map (x : x.text) map (x: x.text) (uniqList {inputList = textClosureDupListOverridable predefined arg;});
(uniqList {inputList = textClosureDupListOverridable predefined arg;}));
textClosureOverridable = predefined: arg: concatStringsSep "\n" (textClosureListOverridable predefined arg); textClosureOverridable = predefined: arg: concatStringsSep "\n" (textClosureListOverridable predefined arg);
textClosureMapOveridable = f: predefined: arg: textClosureMapOveridable = f: predefined: arg:
concatStringsSep "\n" (map f (textClosureListOverridable predefined arg)); concatStringsSep "\n" (map f (textClosureListOverridable predefined arg));
noDepEntry = text: {inherit text; deps = [];}; noDepEntry = text: {inherit text; deps = [];};
FullDepEntry = text : deps: {inherit text deps;}; fullDepEntry = text: deps: {inherit text deps;};
PackEntry = deps: {inherit deps; text="";}; packEntry = deps: {inherit deps; text="";};
# Old names - don't use.
FullDepEntry = fullDepEntry;
PackEntry = packEntry;
} }