From c0d075ffe1bb6a688702600be552e2f7fd29234e Mon Sep 17 00:00:00 2001 From: Lee ByeongJun Date: Wed, 26 Feb 2025 13:08:37 +0900 Subject: [PATCH] walk dir --- cmd/tlin/main.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/cmd/tlin/main.go b/cmd/tlin/main.go index 5e0d9b4..8264fd7 100644 --- a/cmd/tlin/main.go +++ b/cmd/tlin/main.go @@ -9,6 +9,7 @@ import ( "go/parser" "go/token" "os" + "path/filepath" "sort" "strings" "time" @@ -222,6 +223,42 @@ func runAutoFix(ctx context.Context, logger *zap.Logger, engine lint.LintEngine, fix := fixer.New(dryRun, confidenceThreshold) for _, path := range paths { + fileInfo, err := os.Stat(path) + if err != nil { + logger.Error("error getting file info", zap.String("path", path), zap.Error(err)) + continue + } + + if fileInfo.IsDir() { + err := filepath.Walk(path, func(filePath string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if info.IsDir() { + return nil + } + if !strings.HasSuffix(filePath, ".gno") { + return nil + } + + issues, err := lint.ProcessPath(ctx, logger, engine, filePath, lint.ProcessFile) + if err != nil { + logger.Error("error processing path", zap.String("path", filePath), zap.Error(err)) + return nil + } + + err = fix.Fix(filePath, issues) + if err != nil { + logger.Error("error fixing issues", zap.String("path", filePath), zap.Error(err)) + } + return nil + }) + if err != nil { + logger.Error("error walking directory", zap.String("path", path), zap.Error(err)) + } + continue + } + issues, err := lint.ProcessPath(ctx, logger, engine, path, lint.ProcessFile) if err != nil { logger.Error("error processing path", zap.String("path", path), zap.Error(err))