diff options
author | James Fargher <proglottis@gmail.com> | 2023-03-20 22:48:25 +0300 |
---|---|---|
committer | James Fargher <proglottis@gmail.com> | 2023-03-20 22:48:25 +0300 |
commit | 902f1f365fd2f0c8e190accdb092d533cc4692a9 (patch) | |
tree | f579f87c2cead724ae765f6b36b2caeb218a9415 /tools | |
parent | 5338468e55ae2bd6eba6ddc6021e160854348f2b (diff) | |
parent | aa269afa0b3f37c13fb41da668c9b5f9e2635104 (diff) |
Merge branch 'cleanup_module-updater' into 'master'
Easier major version upgrades
Closes #4894
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5505
Merged-by: James Fargher <proglottis@gmail.com>
Approved-by: Sami Hiltunen <shiltunen@gitlab.com>
Reviewed-by: Sami Hiltunen <shiltunen@gitlab.com>
Co-authored-by: James Fargher <jfargher@gitlab.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/module-updater/main.go | 60 |
1 files changed, 31 insertions, 29 deletions
diff --git a/tools/module-updater/main.go b/tools/module-updater/main.go index 608980d4c..f2a51afc4 100644 --- a/tools/module-updater/main.go +++ b/tools/module-updater/main.go @@ -161,48 +161,50 @@ func rewriteImports(moduleAbsRootPath, prev, next string) error { } seen[file.Name()] = struct{}{} - astFile, err := parser.ParseFile(fileSet, file.Name(), nil, parser.ParseComments) - if err != nil { + if err := rewriteFileImports(fileSet, file.Name(), prev, next); err != nil { rerr = err return false } - for _, imprt := range astFile.Imports { - oldImport, err := strconv.Unquote(imprt.Path.Value) - if err != nil { - rerr = fmt.Errorf("unquote import: %s :%w", imprt.Path.Value, err) - return false - } + return true + }) - if newImport := strings.Replace(oldImport, prev, next, 1); newImport != oldImport { - imprt.EndPos = imprt.End() - imprt.Path.Value = strconv.Quote(newImport) - } - } + return rerr +} + +func rewriteFileImports(fileSet *token.FileSet, filename, prev, next string) (retErr error) { + astFile, err := parser.ParseFile(fileSet, filename, nil, parser.ParseComments) + if err != nil { + return err + } - f, err := os.Create(file.Name()) + for _, imprt := range astFile.Imports { + oldImport, err := strconv.Unquote(imprt.Path.Value) if err != nil { - rerr = fmt.Errorf("open file %q: %w", file.Name(), err) - return false + return fmt.Errorf("unquote import: %s :%w", imprt.Path.Value, err) } - ferr := format.Node(f, fileSet, astFile) - cerr := f.Close() - - if ferr != nil { - rerr = fmt.Errorf("rewrite file %q: %w", file.Name(), err) - return false + if newImport := strings.Replace(oldImport, prev, next, 1); newImport != oldImport { + imprt.EndPos = imprt.End() + imprt.Path.Value = strconv.Quote(newImport) } + } - if cerr != nil { - rerr = fmt.Errorf("close file %q: %w", file.Name(), err) - return false + f, err := os.Create(filename) + if err != nil { + return fmt.Errorf("open file %q: %w", filename, err) + } + defer func() { + if err := f.Close(); retErr == nil && err != nil { + retErr = fmt.Errorf("close file %q: %w", filename, err) } + }() - return true - }) + if err := format.Node(f, fileSet, astFile); err != nil { + return fmt.Errorf("rewrite file %q: %w", filename, err) + } - return rerr + return nil } func normaliseDesiredImportReplacement(module, from, to string) (string, string, error) { @@ -289,7 +291,7 @@ func rewriteProto(moduleAbsRootPath, prev, next string) error { for _, line := range lines { tokens := bytes.Fields(line) pckg := bytes.Join(tokens, []byte{'~'}) - if !bytes.HasPrefix(pckg, []byte(`option~go_package~=~"`+prev+`/proto/go/gitalypb";`)) { + if !bytes.HasPrefix(pckg, []byte(`option~go_package~=~"`+prev+`/proto/`)) { modified = append(modified, line) continue } |