about summary refs log tree commit diff stats
path: root/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'default.nix')
-rw-r--r--default.nix68
1 files changed, 68 insertions, 0 deletions
diff --git a/default.nix b/default.nix
new file mode 100644
index 0000000..0697abc
--- /dev/null
+++ b/default.nix
@@ -0,0 +1,68 @@
+let
+  sources = import ./nix/sources.nix;
+in
+{ pkgs ? (
+    import sources.nixpkgs {
+      overlays = [
+        (import "${sources.gomod2nix}/overlay.nix")
+      ];
+    }
+  )
+}: {
+  searchix = pkgs.buildGoApplication {
+    pname = "searchix";
+    version = "0.1";
+    pwd = ./.;
+    src = ./.;
+    modules = ./gomod2nix.toml;
+  };
+
+  pre-commit-check = (import sources.git-hooks).run {
+    src = ./.;
+    hooks = {
+      gotest.enable = true;
+      golangci-lint.enable = true;
+      staticcheck.enable = true;
+
+      statix.enable = true;
+      deadnix = {
+        enable = true;
+        excludes = [ "./nix" ];
+      };
+      nixpkgs-fmt.enable = true;
+
+      convco.enable = true;
+
+      check-case-conflicts.enable = true;
+      check-symlinks.enable = true;
+      editorconfig-checker.enable = true;
+      prettier = {
+        enable = true;
+        types_or = [ "plain-text" "yaml" ];
+        settings = {
+          check = true;
+        };
+      };
+
+      yamllint = {
+        enable = true;
+      };
+      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;
+      };
+      gomod2nix = {
+        enable = true;
+        name = "gomod2nix";
+        description = "Import go.mod updates to nix";
+        types_or = [ "go-sum" ];
+        entry = "${pkgs.gomod2nix}/bin/gomod2nix";
+        pass_filenames = false;
+      };
+    };
+  };
+}