diff options
-rw-r--r-- | examples/hello_world.nix | 3 | ||||
-rw-r--r-- | examples/simple.nix | 4 | ||||
-rw-r--r-- | pkgs/default.nix | 17 |
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); |