{ 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-unstable"; # TODO 24.11 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; [hugo brotli zopfli parallel dart-sass]; in rec { devShells.default = pkgs.mkShell { LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive"; packages = devDeps; }; packages.default = pkgs.compressDrvWeb (pkgs.stdenv.mkDerivation { pname = "jakstys.lt"; version = "1.0.0"; src = pkgs.lib.cleanSource self; buildInputs = devDeps; buildPhase = "hugo --cleanDestinationDir --printPathWarnings --panicOnWarning"; installPhase = "mv public $out"; }) {}; apps.default = { type = "app"; program = builtins.toString (pkgs.writeShellScript "upload" '' ${pkgs.rsync}/bin/rsync \ --info=progress2 \ --copy-links \ --archive \ --partial \ --delete \ ${packages.default}/ \ jakstys.lt:/var/www/jakstys.lt/ ''); }; formatter = pkgs.alejandra; }); }