44 lines
1.3 KiB
Nix
44 lines
1.3 KiB
Nix
{ pkgs ? import sources.nixpkgs { }
|
|
, sources ? import ./nix/sources.nix
|
|
}:
|
|
let
|
|
haskellPackages = pkgs.haskell.packages.ghc98.override {
|
|
overrides = self: super: {
|
|
astore = self.callCabal2nix "astore" sources.json2sql { };
|
|
autotypes = self.callCabal2nix "autotypes" ./autotypes { };
|
|
backend = self.callCabal2nix "backend" ./backend { };
|
|
frontend = self.callCabal2nix "frontend" ./frontend { };
|
|
websockets = pkgs.haskell.lib.doJailbreak super.websockets;
|
|
};
|
|
};
|
|
|
|
jsHaskellPackages = pkgs.pkgsCross.ghcjs.haskell.packages.ghc98.override {
|
|
overrides = self: super: {
|
|
frontend = self.callCabal2nix "frontend" ./frontend { };
|
|
};
|
|
};
|
|
in
|
|
rec {
|
|
inherit (haskellPackages) backend;
|
|
inherit (jsHaskellPackages) frontend;
|
|
shell = haskellPackages.shellFor {
|
|
packages = _: [
|
|
haskellPackages.autotypes
|
|
haskellPackages.backend
|
|
haskellPackages.frontend
|
|
];
|
|
buildInputs = [
|
|
haskellPackages.cabal-install
|
|
haskellPackages.ormolu
|
|
(pkgs.writeScriptBin "reload" ''
|
|
set -efu
|
|
${haskellPackages.ghcid.bin}/bin/ghcid -c \
|
|
'${haskellPackages.cabal-install}/bin/cabal new-repl' \
|
|
-T ':run Main.main'
|
|
'')
|
|
];
|
|
withHoogle = true;
|
|
withHaddock = true;
|
|
};
|
|
}
|