65 lines
1.7 KiB
Nix
65 lines
1.7 KiB
Nix
{
|
|
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; [bash hugo zopfli brotli parallel];
|
|
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
|
|
'';
|
|
};
|
|
|
|
# TODO how to run scripts/build as a result of `nix run .`?
|
|
#packages = flake-utils.lib.mkApp {
|
|
# name = "build
|
|
#};
|
|
|
|
formatter = pkgs.alejandra;
|
|
});
|
|
}
|