diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-06-27 20:31:45 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-06-27 20:33:25 +0900 |
| commit | 42c21ad90626346277861471b1d6896a4e2e5058 (patch) | |
| tree | 3e356fdd3606f27ccd37310e9f9f181acc4ee235 /flake.nix | |
| parent | f16ef88f9f25e1e09a2a741ba3ba4bf44b03b927 (diff) | |
treewide: build via nix
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 85 |
1 files changed, 85 insertions, 0 deletions
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} + ''; + } + ); + }; +} |
