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: self: super:
let let
master = import super.sources.nixpkgs-master { }; master = import super.sources.nixpkgs-master { };
pkgs = master;
inherit (master.haskell.lib) overrideCabal unmarkBroken; inherit (master.haskell.lib) overrideCabal unmarkBroken;
in { makeHaskellScriptPackages = p: {
myHaskellPackages = { inherit (p)
inherit (master.haskellPackages) aeson shh string-interpolate relude replace-megaparsec async say
brittany ormolu releaser cabal-fmt stack ghcide cabal-install dhall aeson megaparsec fdo-notify these;
unordered-containers shh string-interpolate relude replace-megaparsec
async say cmdargs megaparsec fdo-notify these neuron taskwarrior pandoc
hlint Cabal cabal2nix;
}; };
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: { self: super: {
haskellList = list: ''["${builtins.concatStringsSep ''", "'' list}"]''; haskellList = list: ''["${builtins.concatStringsSep ''", "'' list}"]'';
writeHaskellScript = writeHaskellScript = { name ? "haskell-script", bins ? [ ], imports ? [ ] }:
{ name ? "haskell-script", bins ? [ ], imports ? [ ] }:
code: code:
self.writers.makeBinWriter { self.writers.makeBinWriter {
compileScript = '' compileScript = ''
cp $contentPath ${name}.hs 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 mv ${name} $out
${self.binutils-unwrapped}/bin/strip --strip-unneeded "$out" ${self.binutils-unwrapped}/bin/strip --strip-unneeded "$out"
''; '';