diff --git a/.gitignore b/.gitignore index 37480a6..ee57e5e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /resources/_gen /public +/result diff --git a/flake.nix b/flake.nix index 352c15e..b81058e 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,7 @@ flake-utils.url = "github:numtide/flake-utils"; }; outputs = { + self, nixpkgs, flake-utils, ... @@ -22,16 +23,42 @@ devDeps = with pkgs; [bash hugo zopfli brotli parallel]; in { devShells.default = pkgs.mkShell { - name = "rules_nixpkgs_shell"; 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 + ''; + }; + # TODO how to run scripts/build as a result of `nix run .`? #packages = flake-utils.lib.mkApp { # name = "build #}; formatter = pkgs.alejandra; - }); } diff --git a/scripts/build b/scripts/build index 396874c..d6c7fb3 100755 --- a/scripts/build +++ b/scripts/build @@ -3,9 +3,6 @@ set -xeuo pipefail cd "$(git rev-parse --show-toplevel)" hugo --cleanDestinationDir --printPathWarnings --panicOnWarning --log -# https://github.com/gohugoio/hugo/issues/8734 -#hugo --cleanDestinationDir --printPathWarnings --panicOnWarning --log \ -# --buildDrafts --config config.yaml,debugconfig.yaml -d public/zz cd public