{ description = "hakurei.app website, based on grapheneos.org"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; }; 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}) hakurei-static caddy-hakurei-static; pkgs = nixpkgsFor.${system}; in { default = caddy-hakurei-static; hakurei-static = pkgs.callPackage ./package.nix { }; caddy-hakurei-static = pkgs.writeShellScriptBin "caddy-hakurei-static" '' exec ${pkgs.caddy}/bin/caddy \ file-server \ -a -l ":49151" \ -r ${hakurei-static} ''; } ); }; }