Less rebuilds for haskell scripts
This commit is contained in:
parent
c35ccb5b4a
commit
c5fa352616
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"
|
||||||
'';
|
'';
|
||||||
|
|
Loading…
Reference in a new issue