fix(golang): sort paths

This commit is contained in:
Kevin Franklin Kim 2024-12-04 10:56:57 +01:00
parent ea379e0276
commit a24f934ee1
No known key found for this signature in database

View File

@ -15,6 +15,7 @@ import (
"github.com/foomo/posh/pkg/shell" "github.com/foomo/posh/pkg/shell"
"github.com/foomo/posh/pkg/util/files" "github.com/foomo/posh/pkg/util/files"
"github.com/foomo/posh/pkg/util/suggests" "github.com/foomo/posh/pkg/util/suggests"
"golang.org/x/exp/slices"
"golang.org/x/sync/errgroup" "golang.org/x/sync/errgroup"
) )
@ -122,6 +123,11 @@ func NewCommand(l log.Logger, cache cache.Cache) *Command {
Args: []*tree.Arg{pathGenerateArg}, Args: []*tree.Arg{pathGenerateArg},
Execute: inst.generate, Execute: inst.generate,
}, },
{
Name: "clean-lint-cache",
Description: "Run golangci lint cache clean",
Execute: inst.cleanLintCache,
},
{ {
Name: "lint", Name: "lint",
Description: "Run golangci lint", Description: "Run golangci lint",
@ -198,6 +204,7 @@ func (c *Command) build(ctx context.Context, r *readline.Readline) error {
} else { } else {
paths = c.paths(ctx, "go.mod", true) paths = c.paths(ctx, "go.mod", true)
} }
slices.Sort(paths)
ctx, wg := c.wg(ctx, r) ctx, wg := c.wg(ctx, r)
c.l.Info("Running go build ...") c.l.Info("Running go build ...")
@ -223,6 +230,8 @@ func (c *Command) test(ctx context.Context, r *readline.Readline) error {
} else { } else {
paths = c.paths(ctx, "go.mod", true) paths = c.paths(ctx, "go.mod", true)
} }
slices.Sort(paths)
fsi := r.FlagSets().Internal() fsi := r.FlagSets().Internal()
if value, _ := fsi.GetString("tags"); value != "" { if value, _ := fsi.GetString("tags"); value != "" {
envs = append(envs, "GO_TEST_TAGS="+value) envs = append(envs, "GO_TEST_TAGS="+value)
@ -252,6 +261,8 @@ func (c *Command) modTidy(ctx context.Context, r *readline.Readline) error {
} else { } else {
paths = c.paths(ctx, "go.mod", true) paths = c.paths(ctx, "go.mod", true)
} }
slices.Sort(paths)
ctx, wg := c.wg(ctx, r) ctx, wg := c.wg(ctx, r)
c.l.Info("Running go mod tidy...") c.l.Info("Running go mod tidy...")
for _, value := range paths { for _, value := range paths {
@ -275,6 +286,8 @@ func (c *Command) modDownload(ctx context.Context, r *readline.Readline) error {
} else { } else {
paths = c.paths(ctx, "go.mod", true) paths = c.paths(ctx, "go.mod", true)
} }
slices.Sort(paths)
ctx, wg := c.wg(ctx, r) ctx, wg := c.wg(ctx, r)
c.l.Info("Running go mod download...") c.l.Info("Running go mod download...")
for _, value := range paths { for _, value := range paths {
@ -298,6 +311,8 @@ func (c *Command) modOutdated(ctx context.Context, r *readline.Readline) error {
} else { } else {
paths = c.paths(ctx, "go.mod", true) paths = c.paths(ctx, "go.mod", true)
} }
slices.Sort(paths)
ctx, wg := c.wg(ctx, r) ctx, wg := c.wg(ctx, r)
c.l.Info("Running go mod outdated...") c.l.Info("Running go mod outdated...")
for _, value := range paths { for _, value := range paths {
@ -340,6 +355,8 @@ func (c *Command) lint(ctx context.Context, r *readline.Readline) error {
} else { } else {
paths = c.paths(ctx, "go.mod", true) paths = c.paths(ctx, "go.mod", true)
} }
slices.Sort(paths)
var args []string var args []string
ctx, wg := c.wg(ctx, r) ctx, wg := c.wg(ctx, r)
c.l.Info("Running golangci-lint run...") c.l.Info("Running golangci-lint run...")
@ -362,6 +379,10 @@ func (c *Command) lint(ctx context.Context, r *readline.Readline) error {
return wg.Wait() return wg.Wait()
} }
func (c *Command) cleanLintCache(ctx context.Context, r *readline.Readline) error {
return shell.New(ctx, c.l, "golangci-lint", "cache", "clean").Run()
}
func (c *Command) generate(ctx context.Context, r *readline.Readline) error { func (c *Command) generate(ctx context.Context, r *readline.Readline) error {
var paths []string var paths []string
if r.Args().HasIndex(1) { if r.Args().HasIndex(1) {
@ -369,6 +390,7 @@ func (c *Command) generate(ctx context.Context, r *readline.Readline) error {
} else { } else {
paths = c.paths(ctx, "generate.go", false) paths = c.paths(ctx, "generate.go", false)
} }
slices.Sort(paths)
ctx, wg := c.wg(ctx, r) ctx, wg := c.wg(ctx, r)
c.l.Info("Running go generate...") c.l.Info("Running go generate...")