aboutsummaryrefslogtreecommitdiff
path: root/pkgs/nix-serve/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/nix-serve/default.nix')
-rw-r--r--pkgs/nix-serve/default.nix32
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
+ '';
+}