aboutsummaryrefslogtreecommitdiff
path: root/picarones-elm/default.nix
diff options
context:
space:
mode:
authorstuebinm2021-03-07 23:52:19 +0100
committerstuebinm2021-03-07 23:52:19 +0100
commit92c1ef1af95740077282d773242fdd1820c8d15b (patch)
treee8b6feb39975f4b1126eb49f2c7564e2cf3dae34 /picarones-elm/default.nix
parent09eeb58abb279e1049493460a7a99124aa4d9a78 (diff)
Added basic nixos module (and restructured some files)
Right now, this is capable of setting up a running instance of picarones in a couple lines of config (both backend server and the webapp, using nginx). More options should still be added, especially to make the backend's port configurable (but this requires adding features to the haskell code)
Diffstat (limited to 'picarones-elm/default.nix')
-rw-r--r--picarones-elm/default.nix24
1 files changed, 16 insertions, 8 deletions
diff --git a/picarones-elm/default.nix b/picarones-elm/default.nix
index ed71959..b5e9d9d 100644
--- a/picarones-elm/default.nix
+++ b/picarones-elm/default.nix
@@ -1,9 +1,10 @@
-{ nixpkgs ? <nixpkgs>
-, config ? {}
+{ stdenv
+, elmPackages
+, lib
+, baseurl ? "example.org"
+, serverurl ? "wss://example.org"
}:
-with (import nixpkgs config);
-
let
mkDerivation =
{ srcs ? ./elm-srcs.nix
@@ -13,13 +14,15 @@ let
, targets ? []
, registryDat ? ./registry.dat
, outputJavaScript ? true
+ , patchPhase ? ""
+ , ...
}:
stdenv.mkDerivation {
- inherit name src;
+ inherit name src patchPhase;
buildInputs = [ elmPackages.elm ];
- buildPhase = pkgs.elmPackages.fetchElmDeps {
+ buildPhase = elmPackages.fetchElmDeps {
elmPackages = import srcs;
elmVersion = "0.19.1";
inherit registryDat;
@@ -32,7 +35,7 @@ let
mkdir -p $out/share/doc
${lib.concatStrings (map (module: ''
echo "compiling ${elmfile module}"
- elm make ${elmfile module} --output $out/${module}.${extension}
+ elm make ${elmfile module} --optimize --output $out/${module}.${extension}
'') targets)}
cp *.html $out
cp *.css $out
@@ -41,7 +44,12 @@ let
};
in mkDerivation {
name = "picarones";
-
+
+ patchPhase = ''
+ substituteInPlace index.html --replace "{{ baseurl }}" ${lib.escapeShellArg baseurl}
+ substituteInPlace slide.html --replace "{{ serverurl }}" ${lib.escapeShellArg serverurl}
+ '';
+
srcs = ./elm-srcs.nix;
src = ./.;
targets = ["Main" "Cover"];