pkgs: add writeJS{,Bin}

remotes/lass/master v2.2.0
lassulus 7 years ago
parent 3212b4fbfb
commit 79ab2c27f9
  1. 1
      ci.nix
  2. 3
      examples/hello_world.nix
  3. 6
      examples/simple.nix
  4. 17
      pkgs/default.nix

@ -18,6 +18,7 @@ in
bash = writeTest "bash features" simples.bash;
dash = writeTest "dash features" simples.dash;
haskell = writeTest "Rolf" simples.haskell;
js = writeTest "function add(n,d){return n+d}" simples.js;
perl = writeTest "Howdy!" simples.perl;
python2 = writeTest "['some', 'random', 'variables']" simples.python2;
python3 = writeTest "['some', 'random', 'variables']" simples.python3;

@ -18,6 +18,9 @@ in {
main = do
putStrLn "hello world"
'';
js = pkgs.writeJS "hello-world" {} ''
console.log("hello world")
'';
perl = pkgs.writePerl "hello-world" {} ''
print "hello world\n";
'';

@ -14,6 +14,12 @@ in {
main :: IO ()
main = print Rolf
'';
js = pkgs.writeJS "example-js" { deps = [ pkgs.nodePackages.uglify-js ]; } ''
var UglifyJS = require("uglify-js");
var code = "function add(first, second) { return first + second; }";
var result = UglifyJS.minify(code);
console.log(result.code);
'';
perl = pkgs.writePerl "simple.pl" { deps = [ pkgs.perlPackages.boolean ]; } ''
use boolean;
print "Howdy!\n" if true;

@ -297,6 +297,23 @@ pkgs: oldpkgs: {
};
};
writeJS = name: { deps ? [] }: text:
let
node-env = pkgs.buildEnv {
name = "node";
paths = deps;
pathsToLink = [
"/lib/node_modules"
];
};
in pkgs.writeDash name ''
export NODE_PATH=${node-env}/lib/node_modules
exec ${pkgs.nodejs}/bin/node ${pkgs.writeText "js" text}
'';
writeJSBin = name:
pkgs.writeJS "/bin/${name}";
writeJSON = name: value: pkgs.runCommand name {
json = toJSON value;
passAsFile = [ "json" ];

Loading…
Cancel
Save