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
|
||||
intersperse concatStringsSep concatMapStringsSep
|
||||
concatImapStringsSep makeSearchPath makeSearchPathOutput
|
||||
makeLibraryPath makeBinPath makePerlPath optionalString
|
||||
makeLibraryPath makeBinPath makePerlPath makeFullPerlPath optionalString
|
||||
hasPrefix hasSuffix stringToCharacters stringAsChars escape
|
||||
escapeShellArg escapeShellArgs replaceChars lowerChars
|
||||
upperChars toLower toUpper addContextFrom splitString
|
||||
|
@ -126,6 +126,22 @@ rec {
|
||||
*/
|
||||
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
|
||||
or the empty string. Useful to concatenate against a bigger string.
|
||||
|
||||
|
@ -28,14 +28,6 @@ let
|
||||
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 {
|
||||
name = "ack-2.24";
|
||||
|
Loading…
Reference in New Issue
Block a user