rauhala.info/flake.nix

63 lines
2.1 KiB
Nix

{
description = "rauhala.info";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
{
overlay = final: prev: {
deploy-rauhala-info = with final; runCommand "deploy-rauhala-info.sh" { inherit bash ipfs; }
''
mkdir -p $out/bin/
substituteAll ${./support/deploy-rauhala-info.sh} $out/bin/deploy-rauhala-info.sh
chmod u+x $out/bin/deploy-rauhala-info.sh
'';
build-rauhala-info = final.runCommand "site" { buildInputs = [final.makeWrapper]; }
''
mkdir -p $out/bin/
cp ${final.haskellPackages.build-rauhala-info}/bin/site $out/bin/
wrapProgram $out/bin/site --prefix PATH : ${ final.lib.makeBinPath [ final.ipfs ] }
'';
rauhala-info = final.callPackage ./rauhala.info { site = final.build-rauhala-info; };
haskellPackages = prev.haskellPackages.override ( old: {
overrides = final.lib.composeExtensions ( old.overrides or (_: _: {})) (f: p: {
build-rauhala-info = f.callPackage ./site {};
});
} );
};
}
//
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; };
hp = pkgs.haskellPackages;
in
rec {
packages = { inherit (pkgs) build-rauhala-info rauhala-info deploy-rauhala-info; };
applications.build-rauhala-info = flake-utils.lib.mkApp {
drv = packages.build-rauhala-info;
exePath = "/bin/site";
};
applications.deploy-rauhala-info = flake-utils.lib.mkApp {
drv = packages.deploy-rauhala-info;
exePath = "/bin/deploy-rauhala-info.sh";
};
defaultPackage = packages.rauhala-info;
defaultApp = applications.build-rauhala-info;
devShell = hp.shellFor {
packages = h: [h.build-rauhala-info];
buildInputs = with pkgs; [
ghcid
cabal-install
stylish-haskell
entr
haskell-language-server
ipfs
];
};
});
}