{ description = "Stefan Kreutz's personal website"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = inputs@{ self, nixpkgs, flake-utils, ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; config = { }; overlays = [ ]; }; src = builtins.path { path = ./.; name = "blog"; }; in rec { # nix develop devShells.default = pkgs.mkShell { nativeBuildInputs = with pkgs; [ ghc cabal-install lychee zlib ]; }; # nix build . # open ./result/srv/www.skreutz.com/index.html packages.default = packages.site; # nix run .#generator -- --help packages.generator = pkgs.haskell.lib.compose.justStaticExecutables ( pkgs.haskellPackages.callCabal2nix "blog" src { } ); # nix build .#site packages.site = pkgs.callPackage ./site.nix { inherit self; inherit (packages) generator; }; checks.links = pkgs.stdenvNoCC.mkDerivation { inherit src; name = "offline-link-check"; dontBuild = true; doCheck = true; nativeBuildInputs = with pkgs; [ lychee ]; checkPhase = '' "${packages.generator}/bin/site" rebuild lychee --offline --no-progress --require-https --root-dir "$( realpath _site )" _site ''; installPhase = '' mkdir $out ''; }; } ); }