diff options
Diffstat (limited to 'pkgs/nix-serve/default.nix')
-rw-r--r-- | pkgs/nix-serve/default.nix | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/pkgs/nix-serve/default.nix b/pkgs/nix-serve/default.nix new file mode 100644 index 0000000..e5188f0 --- /dev/null +++ b/pkgs/nix-serve/default.nix @@ -0,0 +1,32 @@ +{ stdenv, coreutils, pxz, nix, perl, perlPackages }: + +let + inherit (stdenv.lib) + makeBinPath + ; + +in stdenv.mkDerivation { + name = "nix-serve"; + + src = "${./nix-serve.psgi}"; + + buildInputs = [ perl nix.perl-bindings ] + ++ (with perlPackages; [ DBI DBDSQLite Plack Starman ]); + + phases = [ "installPhase" ]; + + installPhase = '' + mkdir -p $out/libexec/nix-serve + perl -c "$src" + cat "$src" > "$out/libexec/nix-serve.psgi" + + mkdir -p $out/bin + cat > $out/bin/nix-serve <<EOF + #! ${stdenv.shell} + export PATH=${makeBinPath [ coreutils pxz nix ]}:\$PATH + export PERL5LIB=$PERL5LIB + exec ${perlPackages.Starman}/bin/starman "$out/libexec/nix-serve.psgi" "\$@" + EOF + chmod +x $out/bin/nix-serve + ''; +} |