1
0
Fork 0

Less rebuilds for haskell scripts

This commit is contained in:
Malte Brandy 2020-06-06 00:42:41 +02:00
parent c35ccb5b4a
commit c5fa352616
No known key found for this signature in database
GPG key ID: 226A2D41EF5378C9
2 changed files with 18 additions and 12 deletions

View file

@ -1,15 +1,22 @@
self: super:
let
master = import super.sources.nixpkgs-master { };
pkgs = master;
inherit (master.haskell.lib) overrideCabal unmarkBroken;
in {
myHaskellPackages = {
inherit (master.haskellPackages)
brittany ormolu releaser cabal-fmt stack ghcide cabal-install dhall aeson
unordered-containers shh string-interpolate relude replace-megaparsec
async say cmdargs megaparsec fdo-notify these neuron taskwarrior pandoc
hlint Cabal cabal2nix;
makeHaskellScriptPackages = p: {
inherit (p)
aeson shh string-interpolate relude replace-megaparsec async say
megaparsec fdo-notify these;
};
ghc = master.ghc.withPackages (_: builtins.attrValues self.myHaskellPackages);
makeHaskellPackages = p:
{
inherit (p)
brittany ormolu releaser cabal-fmt stack ghcide cabal-install dhall
aeson unordered-containers these neuron taskwarrior pandoc hlint
cabal2nix;
} // makeHaskellScriptPackages p;
in {
myHaskellPackages = makeHaskellPackages master.haskellPackages;
scriptGhc = master.ghc.withPackages
(p: builtins.attrValues (makeHaskellScriptPackages p));
ghc = master.ghc.withPackages (p: builtins.attrValues (makeHaskellPackages p));
}

View file

@ -1,12 +1,11 @@
self: super: {
haskellList = list: ''["${builtins.concatStringsSep ''", "'' list}"]'';
writeHaskellScript =
{ name ? "haskell-script", bins ? [ ], imports ? [ ] }:
writeHaskellScript = { name ? "haskell-script", bins ? [ ], imports ? [ ] }:
code:
self.writers.makeBinWriter {
compileScript = ''
cp $contentPath ${name}.hs
${self.ghc}/bin/ghc ${name}.hs -threaded -Wall -Wno-unused-top-binds -Wno-missing-signatures -Wno-type-defaults -Wno-unused-imports -Werror
${self.scriptGhc}/bin/ghc ${name}.hs -threaded -Wall -Wno-unused-top-binds -Wno-missing-signatures -Wno-type-defaults -Wno-unused-imports -Werror
mv ${name} $out
${self.binutils-unwrapped}/bin/strip --strip-unneeded "$out"
'';