{ description = "hakurei.app website, based on grapheneos.org"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; }; outputs = { self, nixpkgs, }: let supportedSystems = [ "aarch64-linux" "x86_64-linux" ]; forAllSystems = nixpkgs.lib.genAttrs supportedSystems; nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); in { checks = forAllSystems ( system: let pkgs = nixpkgsFor.${system}; inherit (pkgs) runCommandLocal nixfmt-rfc-style deadnix statix ; in { formatting = runCommandLocal "check-formatting" { nativeBuildInputs = [ nixfmt-rfc-style ]; } '' cd ${./.} echo "running nixfmt..." nixfmt --check . touch $out ''; lint = runCommandLocal "check-lint" { nativeBuildInputs = [ deadnix statix ]; } '' cd ${./.} echo "running deadnix..." deadnix --fail echo "running statix..." statix check . touch $out ''; } ); packages = forAllSystems ( system: let inherit (self.packages.${system}) static caddy; pkgs = nixpkgsFor.${system}; in { default = caddy; static = pkgs.callPackage ./package.nix { }; dist = pkgs.runCommand "hakurei-static-${static.version}.tar.zst" { } '' PATH="${pkgs.zstd}/bin:$PATH" \ ${pkgs.gnutar}/bin/tar \ -C '${static}' \ --zstd \ -cf \ "$out" . ''; caddy = pkgs.writeShellScriptBin "caddy-hakurei-static" '' exec ${pkgs.caddy}/bin/caddy \ file-server \ -a -l ":49151" \ -r ${static} ''; } ); }; }