{ nixConfig = { trusted-substituters = "https://cache.nixos.org/"; trusted-public-keys = "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="; extra-experimental-features = "nix-command flakes"; }; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11-small"; flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils, ... }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs {inherit system;}; devDeps = with pkgs; []; in { devShells.default = pkgs.mkShell { packages = devDeps; }; # TODO: cache defaultPackage = pkgs.stdenv.mkDerivation { pname = "jakstys.lt"; version = "1.0.0"; src = pkgs.lib.cleanSource self; buildInputs = [pkgs.hugo]; buildPhase = '' ${pkgs.hugo}/bin/hugo --cleanDestinationDir --printPathWarnings --panicOnWarning --log cd public find . \ -name '*.html' -or \ -name '*.xml' -or \ -name '*.txt' -or \ -name '*.css' -or \ -name '*.map' | \ ${pkgs.parallel}/bin/parallel --eta \ "${pkgs.zopfli}/bin/zopfli {} && ${pkgs.brotli}/bin/brotli {}" ''; installPhase = '' cd ..; mv public $out ''; }; formatter = pkgs.alejandra; }); }