aboutsummaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorsilverwind <me@silverwind.io>2022-02-06 07:44:30 -0800
committerGitHub <noreply@github.com>2022-02-06 16:44:30 +0100
commit37ead26e36073342edd1c36fa7cd3503297d2ce9 (patch)
treeedaa10c2490f4f48de30f280653fd941ddf9ad2f /build
parent7b6c1f809fb90aecc6643c75d6d0203947de8d04 (diff)
downloadgitea-37ead26e36073342edd1c36fa7cd3503297d2ce9.tar.gz
gitea-37ead26e36073342edd1c36fa7cd3503297d2ce9.zip
Fix `make fmt` and `make fmt-check` (#18633)
* Run 'make fmt' 'make fmt' currently produces this change, I'm not sure how CI did not fail on it, I made sure I have `mvdan.cc/gofumpt@latest`. * Fix 'make fmt-check' `make fmt-check` did not run all commands that `make fmt` did, resulting in missed diffs. Fix that by just depending on the `fmt` target. Includes: https://github.com/go-gitea/gitea/pull/18633 * Make gitea-fmt work with -l and -d and integrate gofumpt This implements -l, -w and -d with gitea-fmt and merges gofumpt. Signed-off-by: Andrew Thornton <art27@cantab.net> * as per silverwind Signed-off-by: Andrew Thornton <art27@cantab.net> * Apply suggestions from code review * use -l instead of -d for fmt-check Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: Andrew Thornton <art27@cantab.net>
Diffstat (limited to 'build')
-rw-r--r--build/code-batch-process.go11
-rw-r--r--build/codeformat/formatimports.go20
2 files changed, 21 insertions, 10 deletions
diff --git a/build/code-batch-process.go b/build/code-batch-process.go
index 02f54b9c0a..8139fe7623 100644
--- a/build/code-batch-process.go
+++ b/build/code-batch-process.go
@@ -229,9 +229,9 @@ func containsString(a []string, s string) bool {
return false
}
-func giteaFormatGoImports(files []string) error {
+func giteaFormatGoImports(files []string, hasChangedFiles, doWriteFile bool) error {
for _, file := range files {
- if err := codeformat.FormatGoImports(file); err != nil {
+ if err := codeformat.FormatGoImports(file, hasChangedFiles, doWriteFile); err != nil {
log.Printf("failed to format go imports: %s, err=%v", file, err)
return err
}
@@ -267,10 +267,11 @@ func main() {
logVerbose("batch cmd: %s %v", subCmd, substArgs)
switch subCmd {
case "gitea-fmt":
- if containsString(subArgs, "-w") {
- cmdErrors = append(cmdErrors, giteaFormatGoImports(files))
+ if containsString(subArgs, "-d") {
+ log.Print("the -d option is not supported by gitea-fmt")
}
- cmdErrors = append(cmdErrors, passThroughCmd("gofmt", substArgs))
+ cmdErrors = append(cmdErrors, giteaFormatGoImports(files, containsString(subArgs, "-l"), containsString(subArgs, "-w")))
+ cmdErrors = append(cmdErrors, passThroughCmd("gofumpt", append([]string{"-extra", "-lang", "1.16"}, substArgs...)))
case "misspell":
cmdErrors = append(cmdErrors, passThroughCmd("misspell", substArgs))
default:
diff --git a/build/codeformat/formatimports.go b/build/codeformat/formatimports.go
index fedc5cc090..5d051b2726 100644
--- a/build/codeformat/formatimports.go
+++ b/build/codeformat/formatimports.go
@@ -7,6 +7,7 @@ package codeformat
import (
"bytes"
"errors"
+ "fmt"
"io"
"os"
"sort"
@@ -158,7 +159,7 @@ func formatGoImports(contentBytes []byte) ([]byte, error) {
}
// FormatGoImports format the imports by our rules (see unit tests)
-func FormatGoImports(file string) error {
+func FormatGoImports(file string, doChangedFiles, doWriteFile bool) error {
f, err := os.Open(file)
if err != nil {
return err
@@ -181,11 +182,20 @@ func FormatGoImports(file string) error {
if bytes.Equal(contentBytes, formattedBytes) {
return nil
}
- f, err = os.OpenFile(file, os.O_TRUNC|os.O_WRONLY, 0o644)
- if err != nil {
+
+ if doChangedFiles {
+ fmt.Println(file)
+ }
+
+ if doWriteFile {
+ f, err = os.OpenFile(file, os.O_TRUNC|os.O_WRONLY, 0o644)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+ _, err = f.Write(formattedBytes)
return err
}
- defer f.Close()
- _, err = f.Write(formattedBytes)
+
return err
}