diff options
author | stuebinm | 2021-03-07 16:59:38 +0100 |
---|---|---|
committer | stuebinm | 2021-03-07 18:36:43 +0100 |
commit | 090041fadec2e2896c3b82ef518096313d452c13 (patch) | |
tree | b24b2753f8316bbf25420e8c121c685d346505a7 /picarones-elm/default.nix | |
parent | 2ad5d413aa958a1c2fe75ce7aa155576e9a80345 (diff) | |
parent | f4a1ee55987b7c58745dc5865c4ecf30874a3564 (diff) |
Join subtrees and integrate meta info / gitignore
git-subtree-dir: picarones-elm
git-subtree-mainline: 2ad5d413aa958a1c2fe75ce7aa155576e9a80345
git-subtree-split: f4a1ee55987b7c58745dc5865c4ecf30874a3564
Diffstat (limited to '')
-rw-r--r-- | picarones-elm/default.nix | 51 |
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; +} + |