build/analysis: replace nogo staticcheck adapter
The upstream repo is not very active and requires us to override the rules_go
dependency name. By building our own adapter, we don't need it anymore.
Change-Id: I6e539881a23a1934d0bf6ebc2d79d02469bd4c6a
Reviewed-on: https://review.monogon.dev/c/monogon/+/4481
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
diff --git a/build/analysis/staticcheck/generate_analyzers/main.go b/build/analysis/staticcheck/generate_analyzers/main.go
new file mode 100644
index 0000000..bcf96ff
--- /dev/null
+++ b/build/analysis/staticcheck/generate_analyzers/main.go
@@ -0,0 +1,44 @@
+// Copyright The Monogon Project Authors.
+// SPDX-License-Identifier: Apache-2.0
+
+package main
+
+import (
+ "flag"
+ "fmt"
+ "log"
+ "maps"
+ "os"
+ "slices"
+ "sort"
+
+ "source.monogon.dev/build/analysis/staticcheck"
+)
+
+func main() {
+ out := flag.String("out", "", "The output file to write the list to")
+ flag.Parse()
+
+ if *out == "" {
+ log.Fatal("-out argument is required")
+ }
+
+ outFile, err := os.OpenFile(*out, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0655)
+ if err != nil {
+ log.Fatalf("failed opening file: %v", err)
+ }
+ defer outFile.Close()
+
+ const fileHeader = "# Generated by //build/analysis/staticcheck/generate_analyzers\n# Do not modify!\n\nANALYZER_NAMES = [\n"
+ fmt.Fprint(outFile, fileHeader)
+
+ analyzerNames := slices.Collect(maps.Keys(staticcheck.Analyzers))
+ sort.Strings(analyzerNames)
+
+ for _, name := range analyzerNames {
+ fmt.Fprintf(outFile, " %q,\n", name)
+ }
+
+ const fileFooter = "]\n"
+ fmt.Fprint(outFile, fileFooter)
+}