aboutsummaryrefslogtreecommitdiff
path: root/picarones-elm/default.nix
diff options
context:
space:
mode:
authorstuebinm2021-03-07 16:59:38 +0100
committerstuebinm2021-03-07 18:36:43 +0100
commit090041fadec2e2896c3b82ef518096313d452c13 (patch)
treeb24b2753f8316bbf25420e8c121c685d346505a7 /picarones-elm/default.nix
parent2ad5d413aa958a1c2fe75ce7aa155576e9a80345 (diff)
parentf4a1ee55987b7c58745dc5865c4ecf30874a3564 (diff)
Join subtrees and integrate meta info / gitignore
git-subtree-dir: picarones-elm git-subtree-mainline: 2ad5d413aa958a1c2fe75ce7aa155576e9a80345 git-subtree-split: f4a1ee55987b7c58745dc5865c4ecf30874a3564
Diffstat (limited to 'picarones-elm/default.nix')
-rw-r--r--picarones-elm/default.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/picarones-elm/default.nix b/picarones-elm/default.nix
new file mode 100644
index 0000000..d597f70
--- /dev/null
+++ b/picarones-elm/default.nix
@@ -0,0 +1,51 @@
+{ nixpkgs ? <nixpkgs>
+, config ? {}
+}:
+
+with (import nixpkgs config);
+
+let
+ mkDerivation =
+ { srcs ? ./elm-srcs.nix
+ , src
+ , name
+ , srcdir ? "./src"
+ , targets ? []
+ , registryDat ? ./registry.dat
+ , outputJavaScript ? true
+ }:
+ stdenv.mkDerivation {
+ inherit name src;
+
+ buildInputs = [ elmPackages.elm ];
+
+ buildPhase = pkgs.elmPackages.fetchElmDeps {
+ elmPackages = import srcs;
+ elmVersion = "0.19.1";
+ inherit registryDat;
+ };
+
+ installPhase = let
+ elmfile = module: "${srcdir}/${builtins.replaceStrings ["."] ["/"] module}.elm";
+ extension = if outputJavaScript then "js" else "html";
+ in ''
+ mkdir -p $out/share/doc
+ ${lib.concatStrings (map (module: ''
+ echo "compiling ${elmfile module}"
+ elm make ${elmfile module} --output $out/${module}.${extension}
+ '') targets)}
+ cp *.html $out
+ cp *.css $out
+ cp -r example $out/
+ '';
+ };
+in mkDerivation {
+ name = "picarones";
+
+ srcs = ./elm-srcs.nix;
+ src = ./.;
+ targets = ["Main"];
+ srcdir = "./src";
+ outputJavaScript = true;
+}
+