summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix55
1 files changed, 55 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..7d153a9
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,55 @@
+{
+ 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 ];
+ };
+
+ # 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
+ '';
+ };
+ }
+ );
+}
Generated by cgit. See skreutz.com for my tech blog and contact information.