diff options
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..34f4360 --- /dev/null +++ b/flake.nix @@ -0,0 +1,61 @@ +{ + description = "My website, alanpearce.eu"; + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + inputs.utils.url = "github:numtide/flake-utils"; + inputs.flake-compat = { + url = "github:edolstra/flake-compat"; + flake = false; + }; + inputs.pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; + + outputs = { self, nixpkgs, utils, pre-commit-hooks, ... }: + utils.lib.eachDefaultSystem + (system: + let + pkgs = import nixpkgs { + inherit system; + }; + commonShellPackages = with pkgs; [ + go + templ + hyperlink + just + ko + flyctl + ]; + devPackages = with pkgs; [ + gopls + gotools + + systemfd + just + modd + ]; + in + { + devShells = { + ci = pkgs.mkShell { + packages = commonShellPackages; + }; + default = pkgs.mkShell { + inherit (self.checks.${system}.pre-commit-check) shellHook; + packages = devPackages ++ commonShellPackages; + }; + }; + checks = { + pre-commit-check = pre-commit-hooks.lib.${system}.run { + src = ./.; + hooks = { + go-mod-tidy = { + enable = true; + name = "go-mod-tidy"; + description = "Run `go mod tidy`"; + types_or = [ "go" "go-mod" ]; + entry = "${pkgs.go}/bin/go mod tidy"; + pass_filenames = false; + }; + }; + }; + }; + }); +} |