summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlassulus <lassulus@lassul.us>2018-09-12 14:57:09 +0200
committerlassulus <lassulus@lassul.us>2018-09-16 16:47:24 +0200
commit9cd634f650551080b01e06763c11836ce33e0613 (patch)
treec9e3b55ab4fbd3aa8a8811967f500b9025fd7ad4
parent368a04fec30837037079d13c3704b9766af37eb8 (diff)
pkgs: add writePerl{,Bin}
-rw-r--r--examples/hello_world.nix3
-rw-r--r--examples/simple.nix4
-rw-r--r--pkgs/default.nix17
3 files changed, 24 insertions, 0 deletions
diff --git a/examples/hello_world.nix b/examples/hello_world.nix
index 4bb3db1..4944c13 100644
--- a/examples/hello_world.nix
+++ b/examples/hello_world.nix
@@ -18,6 +18,9 @@ in {
main = do
putStrLn "hello world"
'';
+ perl = pkgs.writePerl "hello-world" {} ''
+ print "hello world\n";
+ '';
python2 = pkgs.writePython2 "hello-world" {} ''
print "hello world"
'';
diff --git a/examples/simple.nix b/examples/simple.nix
index 32a4cee..ad62b84 100644
--- a/examples/simple.nix
+++ b/examples/simple.nix
@@ -14,6 +14,10 @@ in {
main :: IO ()
main = print Rolf
'';
+ perl = pkgs.writePerl "simple.pl" { deps = [ pkgs.perlPackages.boolean ]; } ''
+ use boolean;
+ print "Howdy!\n" if true;
+ '';
python2 = pkgs.writePython2 "hello-world" { deps = [ pkgs.python2Packages.pyyaml ]; } ''
import yaml
diff --git a/pkgs/default.nix b/pkgs/default.nix
index 29457ca..b7b0dde 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -313,6 +313,23 @@ pkgs: oldpkgs: {
${pkgs.cabal2nix}/bin/cabal2nix ${path} > $out
'');
+ writePerl = name: { deps ? [] }:
+ let
+ perl-env = pkgs.buildEnv {
+ name = "perl-environment";
+ paths = deps;
+ pathsToLink = [
+ "/lib/perl5/site_perl"
+ ];
+ };
+ in
+ pkgs.makeScriptWriter {
+ interpreter = "${pkgs.perl}/bin/perl -I ${perl-env}/lib/perl5/site_perl";
+ } name;
+
+ writePerlBin = name:
+ pkgs.writePerl "/bin/${name}";
+
writePython2 = name: { deps ? [], flakeIgnore ? [] }:
let
py = pkgs.python2.withPackages (ps: deps);