aboutsummaryrefslogtreecommitdiff
path: root/modules/pkgs/nix-serve/default.nix
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2017-04-28 20:28:16 +0300
committerIgor Pashev <pashev.igor@gmail.com>2017-04-29 11:05:10 +0300
commitc2afdc99216156f87f436c52c82e286dd5f7e655 (patch)
treea325ca59b5ec19923952ddb5a1a3b776e50de9ae /modules/pkgs/nix-serve/default.nix
parent10c8ff2047ad7ae45cd2cf60d77456dc205659fa (diff)
downloadnixsap-c2afdc99216156f87f436c52c82e286dd5f7e655.tar.gz
Added nix-serve app and package
Diffstat (limited to 'modules/pkgs/nix-serve/default.nix')
-rw-r--r--modules/pkgs/nix-serve/default.nix31
1 files changed, 31 insertions, 0 deletions
diff --git a/modules/pkgs/nix-serve/default.nix b/modules/pkgs/nix-serve/default.nix
new file mode 100644
index 0000000..7dcd9df
--- /dev/null
+++ b/modules/pkgs/nix-serve/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, coreutils, pxz, nix, perl, perlPackages }:
+
+let
+ inherit (stdenv.lib)
+ makeBinPath
+ ;
+
+in stdenv.mkDerivation {
+ name = "nix-serve";
+
+ src = "${./nix-serve.psgi}";
+
+ buildInputs = [ pxz perl nix ]
+ ++ (with perlPackages; [ DBI DBDSQLite Plack Starman ]);
+
+ phases = [ "installPhase" ];
+
+ installPhase = ''
+ mkdir -p $out/libexec/nix-serve
+ 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
+ '';
+}