as requested:
- moved function into strings.nix - renamed function from makePerl5Lib - removed duplicates entries in the resulting value - rewrote the function from scratch after learning a few things (much cleaner now)
This commit is contained in:
parent
d5003f5f73
commit
74d446176e
@ -80,7 +80,7 @@ let
|
|||||||
inherit (strings) concatStrings concatMapStrings concatImapStrings
|
inherit (strings) concatStrings concatMapStrings concatImapStrings
|
||||||
intersperse concatStringsSep concatMapStringsSep
|
intersperse concatStringsSep concatMapStringsSep
|
||||||
concatImapStringsSep makeSearchPath makeSearchPathOutput
|
concatImapStringsSep makeSearchPath makeSearchPathOutput
|
||||||
makeLibraryPath makeBinPath makePerlPath optionalString
|
makeLibraryPath makeBinPath makePerlPath makeFullPerlPath optionalString
|
||||||
hasPrefix hasSuffix stringToCharacters stringAsChars escape
|
hasPrefix hasSuffix stringToCharacters stringAsChars escape
|
||||||
escapeShellArg escapeShellArgs replaceChars lowerChars
|
escapeShellArg escapeShellArgs replaceChars lowerChars
|
||||||
upperChars toLower toUpper addContextFrom splitString
|
upperChars toLower toUpper addContextFrom splitString
|
||||||
|
@ -126,6 +126,22 @@ rec {
|
|||||||
*/
|
*/
|
||||||
makePerlPath = makeSearchPathOutput "lib" "lib/perl5/site_perl";
|
makePerlPath = makeSearchPathOutput "lib" "lib/perl5/site_perl";
|
||||||
|
|
||||||
|
/* Construct a perl search path recursively including all dependencies (such as $PERL5LIB)
|
||||||
|
|
||||||
|
Example:
|
||||||
|
pkgs = import <nixpkgs> { }
|
||||||
|
makeFullPerlPath [ pkgs.perlPackages.CGI ]
|
||||||
|
=> "/nix/store/fddivfrdc1xql02h9q500fpnqy12c74n-perl-CGI-4.38/lib/perl5/site_perl:/nix/store/8hsvdalmsxqkjg0c5ifigpf31vc4vsy2-perl-HTML-Parser-3.72/lib/perl5/site_perl:/nix/store/zhc7wh0xl8hz3y3f71nhlw1559iyvzld-perl-HTML-Tagset-3.20/lib/perl5/site_perl"
|
||||||
|
*/
|
||||||
|
makeFullPerlPath = deps:
|
||||||
|
let
|
||||||
|
recurse = dep:
|
||||||
|
[ dep ] ++ dep.propagatedBuildInputs ++ (map (arg: recurse arg) dep.propagatedBuildInputs)
|
||||||
|
;
|
||||||
|
in
|
||||||
|
makePerlPath (lib.unique (lib.flatten (map (arg: recurse arg) deps)))
|
||||||
|
;
|
||||||
|
|
||||||
/* Depending on the boolean `cond', return either the given string
|
/* Depending on the boolean `cond', return either the given string
|
||||||
or the empty string. Useful to concatenate against a bigger string.
|
or the empty string. Useful to concatenate against a bigger string.
|
||||||
|
|
||||||
|
@ -28,14 +28,6 @@ let
|
|||||||
checkPhase = "./Build test";
|
checkPhase = "./Build test";
|
||||||
});
|
});
|
||||||
|
|
||||||
# Helper function to make a PERL5LIB environment variable for a list of perlPackages and all associated runtime dependencies
|
|
||||||
makePerl5Lib = deps:
|
|
||||||
with stdenv;
|
|
||||||
lib.concatStringsSep ":" [
|
|
||||||
(lib.makePerlPath deps)
|
|
||||||
(lib.concatStringsSep ":" (map (dep: dep + "/lib/perl5/site_perl") (builtins.filter (dep: dep != null) (lib.flatten (map (dep: lib.getOutput "propagatedBuildInputs" dep) deps)))))
|
|
||||||
]
|
|
||||||
;
|
|
||||||
|
|
||||||
ack = buildPerlPackage rec {
|
ack = buildPerlPackage rec {
|
||||||
name = "ack-2.24";
|
name = "ack-2.24";
|
||||||
|
Loading…
Reference in New Issue
Block a user