{ 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 ]; }; }); }