staticcheck.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // staticcheck analyses Go code and makes it better.
  2. package main
  3. import (
  4. "log"
  5. "os"
  6. "honnef.co/go/tools/lintcmd"
  7. "honnef.co/go/tools/lintcmd/version"
  8. "honnef.co/go/tools/quickfix"
  9. "honnef.co/go/tools/simple"
  10. "honnef.co/go/tools/staticcheck"
  11. "honnef.co/go/tools/stylecheck"
  12. "honnef.co/go/tools/unused"
  13. )
  14. func main() {
  15. cmd := lintcmd.NewCommand("staticcheck")
  16. cmd.SetVersion(version.Version, version.MachineVersion)
  17. fs := cmd.FlagSet()
  18. debug := fs.String("debug.unused-graph", "", "Write unused's object graph to `file`")
  19. qf := fs.Bool("debug.run-quickfix-analyzers", false, "Run quickfix analyzers")
  20. cmd.ParseFlags(os.Args[1:])
  21. cmd.AddAnalyzers(simple.Analyzers...)
  22. cmd.AddAnalyzers(staticcheck.Analyzers...)
  23. cmd.AddAnalyzers(stylecheck.Analyzers...)
  24. cmd.AddAnalyzers(unused.Analyzer)
  25. if *qf {
  26. cmd.AddAnalyzers(quickfix.Analyzers...)
  27. }
  28. if *debug != "" {
  29. f, err := os.OpenFile(*debug, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
  30. if err != nil {
  31. log.Fatal(err)
  32. }
  33. unused.Debug = f
  34. }
  35. cmd.Run()
  36. }