From 42c21ad90626346277861471b1d6896a4e2e5058 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Fri, 27 Jun 2025 20:31:45 +0900 Subject: treewide: build via nix --- flake.nix | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 flake.nix (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..9660390c --- /dev/null +++ b/flake.nix @@ -0,0 +1,85 @@ +{ + 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 hakurei-static-web-server; + pkgs = nixpkgsFor.${system}; + in + { + default = hakurei-static-web-server; + hakurei-static = pkgs.callPackage ./package.nix { }; + hakurei-static-web-server = pkgs.writeShellScriptBin "hakurei-static-web-server" '' + exec ${pkgs.static-web-server}/bin/static-web-server \ + -g info \ + -p 49151 \ + -d ${hakurei-static} + ''; + } + ); + }; +} -- cgit v1.3.1