Created
August 20, 2018 00:55
-
-
Save sorki/61eac41054ce2d1aa1a0631fc96b08d7 to your computer and use it in GitHub Desktop.
miso ghcjs8.4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ pkgs ? import ((import <nixpkgs> {}).fetchFromGitHub { | |
owner = "NixOS"; | |
repo = "nixpkgs"; | |
rev = "a0aeb23"; | |
sha256 = "04dgg0f2839c1kvlhc45hcksmjzr8a22q1bgfnrx71935ilxl33d"; | |
}){} | |
}: | |
let | |
inherit (pkgs) runCommand closurecompiler; | |
repo = pkgs.fetchFromGitHub { | |
owner = "dmjio"; | |
repo = "miso"; | |
sha256 = "0q0m105c7jj913vh4mc9qsnc9ddvldff1np364z6acw6fyslnn5r"; | |
rev = "5c3d01780bce2f803bf10d531c876250be5eebc6"; | |
#sha256 = "0v4p41i45mnhpfrqw3n0394w0g9pglylxy66vbaqyfx6vvmbwzs4"; | |
#rev = "d6fd3fa96cf5adca9052460328be888c64df52d8"; | |
}; | |
result = import (repo) {}; | |
ghcjsSrc = pkgs.fetchFromGitHub { | |
owner = "sorki"; | |
repo = "ghcjs"; | |
rev = "5acb3a2b83663da308196dee0bacb2577d86db32"; | |
sha256 = "1gqa1ilh92f2rd0zkc4lj4z3ys924x18k3mwfik3lq690mcz9vx3"; | |
fetchSubmodules = true; | |
}; | |
overlays = [ | |
(self: super: | |
{ | |
haskell = super.haskell // { | |
compiler = super.haskell.compiler // { | |
ghcjs84 = super.haskell.compiler.ghcjs84.override { inherit ghcjsSrc; }; | |
}; | |
}; | |
} | |
) | |
]; | |
syspkgs = import <nixpkgs> { inherit overlays; }; | |
#syspkgs = import <nixpkgs> { }; | |
makeOverrides = function: names: haskellPackagesNew: haskellPackagesOld: | |
let toPackage = name: { | |
inherit name; | |
value = function haskellPackagesOld.${name}; | |
}; | |
in builtins.listToAttrs (map toPackage names); | |
composeExtensionsList = syspkgs.lib.fold syspkgs.lib.composeExtensions (_: _: {}); | |
dontChecks = [ | |
"directory-tree" | |
"comonad" | |
"Glob" | |
"semigroupoids" | |
"mockery" | |
"servant" | |
"unix-time" | |
"word8" | |
"lens" | |
"wai-extra" | |
"jsaddle" | |
"wai-app-static" | |
]; | |
doJailbreak = [ | |
#"jsaddle" | |
]; | |
ghcCallPackage = syspkgs.haskell.packages.ghc843.callPackage; | |
ghcJSCallPackage = let | |
overrides = composeExtensionsList [ | |
(makeOverrides syspkgs.haskell.lib.dontCheck dontChecks) | |
(makeOverrides syspkgs.haskell.lib.doJailbreak doJailbreak) | |
(self: super: { | |
doctest = self.callPackage ./spheres-and-points/modifiedDeps/doctest/doctest.nix {}; | |
#jsaddle = super.jsaddle.overrideAttrs (old: rec { libraryHaskellDepends = [ super.ghcjs-base ]; }); | |
jsaddle = self.callPackage ../jsaddle/jsaddle {}; | |
}) | |
]; | |
in (syspkgs.haskell.packages.ghcjs84.override { inherit overrides; }).callPackage; | |
# deps | |
mqtt-hs = ghcCallPackage ./mqtt-hs.nix { }; | |
cayene-lpp = ghcCallPackage ../data-cayene-lpp { }; | |
cayene-lpp-js = ghcJSCallPackage ../data-cayene-lpp { }; | |
ttn = ghcCallPackage ../data-ttn { }; | |
ttn-js = ghcJSCallPackage ../data-ttn { }; | |
ttn-client = ghcCallPackage ../ttn-client { | |
inherit ttn cayene-lpp mqtt-hs; | |
}; | |
miso-ghc = ghcCallPackage "${repo}/miso-ghc.nix" { }; | |
miso-ghcjs = ghcJSCallPackage "${repo}/miso-ghcjs.nix" { }; | |
# toplevel | |
server = ghcCallPackage ./server { | |
inherit ttn ttn-client; | |
miso = miso-ghc; | |
#miso = result.miso-ghc; | |
}; | |
client = ghcJSCallPackage ./client { | |
ttn = ttn-js; | |
#miso = result.miso-ghcjs; | |
miso = miso-ghcjs; | |
}; | |
in | |
runCommand "ttn-om-out" { inherit client server; } '' | |
mkdir -p $out/{bin,static} | |
${closurecompiler}/bin/closure-compiler ${client}/bin/client.jsexe/all.js > $out/static/all.js | |
cp ${server}/bin/* $out/bin | |
'' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment