1
0
Fork 0
nixos-config/packages/flake-module.nix

65 lines
2.4 KiB
Nix
Raw Normal View History

2023-05-22 01:06:42 +00:00
{ lib, inputs, ... }:
let
2023-03-03 11:48:27 +00:00
stable-pkgs = inputs.nixos-stable.legacyPackages.x86_64-linux;
unstable-pkgs = inputs.nixos-unstable.legacyPackages.x86_64-linux;
2023-05-22 01:44:51 +00:00
inherit (unstable-pkgs.haskell.lib.compose) overrideCabal;
2023-05-22 01:06:42 +00:00
includePatterns = [ ".hs" ".cabal" "LICENSE" "default.nix" "CHANGELOG.md" ];
2023-05-22 02:08:50 +00:00
cleanCabalPackage = source:
{ extraPatterns ? [ ], overrides ? _: { }, }:
2023-05-22 01:06:42 +00:00
hpkgs:
let
cleanSource =
lib.sourceFilesBySuffices source (includePatterns ++ extraPatterns);
in lib.pipe { } [
2023-02-23 14:46:36 +00:00
(hpkgs.callPackage source)
2023-05-22 01:06:42 +00:00
(overrideCabal (old:
{
src = cleanSource;
preConfigure = ''
echo "Checking that default.nix is up-to-date "
${lib.getExe hpkgs.cabal2nix} . > fresh-default.nix
cp ${cleanSource}/default.nix .
chmod u+w default.nix
2023-05-22 01:28:31 +00:00
${lib.getExe unstable-pkgs.nixfmt} fresh-default.nix default.nix
2023-05-22 01:06:42 +00:00
${stable-pkgs.diffutils}/bin/diff -w default.nix fresh-default.nix
echo "default.nix confirmed to be up-to-date."
'';
} // overrides old))
2023-01-19 03:13:41 +00:00
hpkgs.buildFromCabalSdist
];
2023-05-22 02:08:50 +00:00
haskellPackagesOverlay = final: _prev:
2023-05-22 01:06:42 +00:00
lib.mapAttrs (_: package: package final) myHaskellPackages // {
2023-04-09 10:39:09 +00:00
streamly = final.streamly_0_9_0;
2023-01-19 03:13:41 +00:00
};
2023-05-22 01:06:42 +00:00
selectHaskellPackages = attrs:
lib.mapAttrs (name: _: attrs.${name}) myHaskellPackages;
2023-01-19 03:13:41 +00:00
myHaskellPackages = {
2023-05-22 02:08:50 +00:00
wizards-dialog = cleanCabalPackage ./wizards-dialog { };
rssfeeds = cleanCabalPackage ./rssfeeds { };
kassandra = cleanCabalPackage ./kassandra/kassandra {
2023-05-22 01:06:42 +00:00
overrides = _: { doHaddock = false; };
2023-01-19 03:13:41 +00:00
};
2023-05-22 02:08:50 +00:00
kassandra-standalone = cleanCabalPackage ./kassandra/standalone { };
nixpkgs-bot = cleanCabalPackage ./nixpkgs-bot { };
builders-configurator = cleanCabalPackage ./builders-configurator { };
status-script = cleanCabalPackage ./status-script {
overrides = _: {
2023-03-21 15:19:08 +00:00
buildDepends = builtins.attrValues {
inherit (stable-pkgs) git khal playerctl notmuch jq tailscale;
inherit (unstable-pkgs) nix nix-diff;
};
2023-03-03 11:48:27 +00:00
};
2023-03-21 15:19:08 +00:00
};
2023-01-19 03:13:41 +00:00
};
2023-03-03 11:48:27 +00:00
hpkgs = unstable-pkgs.haskellPackages.override {
2023-02-03 05:37:18 +00:00
overrides = haskellPackagesOverlay;
};
packages = selectHaskellPackages hpkgs;
2023-01-19 03:13:41 +00:00
in {
2023-03-02 23:06:45 +00:00
flake = {
2023-05-22 01:06:42 +00:00
lib = { inherit selectHaskellPackages; };
overlays = { inherit haskellPackagesOverlay; };
2023-02-03 05:37:18 +00:00
};
2023-05-22 02:08:50 +00:00
perSystem = { inherit packages; };
2023-01-19 03:13:41 +00:00
}