init nix-features
This commit is contained in:
parent
d04ddd4c32
commit
b929e21f82
14 changed files with 1646 additions and 61 deletions
53
package.nix
Normal file
53
package.nix
Normal file
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
esbuild,
|
||||
elmPackages,
|
||||
haskellPackages,
|
||||
stdenv,
|
||||
...
|
||||
}: let
|
||||
ghcExeOptions = "-Wall -Wcompact -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N";
|
||||
ghcPackages = p: [
|
||||
p.aeson
|
||||
p.blaze-html
|
||||
p.blaze-markup
|
||||
p.directory
|
||||
p.elm-street
|
||||
p.http-types
|
||||
p.scotty
|
||||
p.text
|
||||
p.wai-extra
|
||||
p.warp
|
||||
];
|
||||
elmConfig = elmPackages.fetchElmDeps {
|
||||
elmPackages = import ./frontend/elm-srcs.nix;
|
||||
elmVersion = "0.19.1";
|
||||
registryDat = ./frontend/registry.dat;
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "elmskell";
|
||||
version = "0.1.0";
|
||||
src = ./src;
|
||||
nativeBuildInputs = [
|
||||
esbuild
|
||||
(haskellPackages.ghcWithPackages ghcPackages)
|
||||
elmPackages.elm
|
||||
];
|
||||
buildInputs = [
|
||||
];
|
||||
configurePhase = ''
|
||||
${elmConfig}
|
||||
'';
|
||||
buildPhase = ''
|
||||
ghc -v ${ghcExeOptions} ./Main.hs -o ./main
|
||||
elm make ./Main.elm --optimize --output=tmp.js
|
||||
esbuild ./tmp.js --minify --target=es5 --outfile=main.js
|
||||
'';
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/src
|
||||
cp ./main $out/bin/elmskell
|
||||
cp ./main.js $out/src/main.js
|
||||
cp ./init.js $out/src/init.js
|
||||
'';
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue