]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: change Printer.Output -> Printer.Printf for consistency
authorAustin Clements <austin@google.com>
Thu, 14 Nov 2024 00:50:44 +0000 (19:50 -0500)
committerAustin Clements <austin@google.com>
Sun, 17 Nov 2024 14:32:08 +0000 (14:32 +0000)
Currently, the Printer interface has `Output`, which acts like Print
and `Errorf`, which acts like Printf. It's confusing that the
formatting style is tied to whether it's regular output or an error.

Fix this by replacing Output with Printf, so both use Printf-style
formatting.

Change-Id: I4c76f941e956f2599c5620b455bf41e21636b44e
Reviewed-on: https://go-review.googlesource.com/c/go/+/627795
Reviewed-by: Russ Cox <rsc@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

src/cmd/go/internal/load/printer.go
src/cmd/go/internal/work/action.go
src/cmd/go/internal/work/buildid.go
src/cmd/go/internal/work/exec.go
src/cmd/go/internal/work/shell.go

index 81954c0f34a90051bce04bf26975280327258ecd..d698a78aa2d92be2948a7064fe37e0ed137d60df 100644 (file)
@@ -17,15 +17,15 @@ import (
 
 // A Printer reports output about a Package.
 type Printer interface {
-       // Output reports output from building pkg. The arguments are of the form
-       // expected by fmt.Print.
+       // Printf reports output from building pkg. The arguments are of the form
+       // expected by [fmt.Printf].
        //
        // pkg may be nil if this output is not associated with the build of a
        // particular package.
        //
        // The caller is responsible for checking if printing output is appropriate,
        // for example by checking cfg.BuildN or cfg.BuildV.
-       Output(pkg *Package, args ...any)
+       Printf(pkg *Package, format string, args ...any)
 
        // Errorf prints output in the form of `log.Errorf` and reports that
        // building pkg failed.
@@ -68,8 +68,8 @@ type TextPrinter struct {
        Writer io.Writer
 }
 
-func (p *TextPrinter) Output(_ *Package, args ...any) {
-       fmt.Fprint(p.Writer, args...)
+func (p *TextPrinter) Printf(_ *Package, format string, args ...any) {
+       fmt.Fprintf(p.Writer, format, args...)
 }
 
 func (p *TextPrinter) Errorf(_ *Package, format string, args ...any) {
@@ -92,10 +92,10 @@ type jsonBuildEvent struct {
        Output     string `json:",omitempty"` // Non-empty if Action == “build-output”
 }
 
-func (p *JSONPrinter) Output(pkg *Package, args ...any) {
+func (p *JSONPrinter) Printf(pkg *Package, format string, args ...any) {
        ev := &jsonBuildEvent{
                Action: "build-output",
-               Output: fmt.Sprint(args...),
+               Output: fmt.Sprintf(format, args...),
        }
        if ev.Output == "" {
                // There's no point in emitting a completely empty output event.
@@ -112,7 +112,7 @@ func (p *JSONPrinter) Errorf(pkg *Package, format string, args ...any) {
        // For clarity, emit each line as a separate output event.
        for len(s) > 0 {
                i := strings.IndexByte(s, '\n')
-               p.Output(pkg, s[:i+1])
+               p.Printf(pkg, "%s", s[:i+1])
                s = s[i+1:]
        }
        ev := &jsonBuildEvent{
index ab577a6e0e1d6b0ad7f9490df0da4f2f2a194113..60ed983d822918e3548ccbef200eaa1f1a9322a9 100644 (file)
@@ -298,7 +298,7 @@ func NewBuilder(workDir string) *Builder {
        b.backgroundSh = NewShell(b.WorkDir, nil)
 
        if printWorkDir {
-               b.BackgroundShell().Print("WORK=", b.WorkDir, "\n")
+               b.BackgroundShell().Printf("WORK=%s\n", b.WorkDir)
        }
 
        if err := CheckGOOSARCHPair(cfg.Goos, cfg.Goarch); err != nil {
index 7ec3f94d9d361e834d0e8b9aabcce4cdd126431a..421c693149c41355df5cbe3be049e41025f93a73 100644 (file)
@@ -618,7 +618,7 @@ func showStdout(b *Builder, c cache.Cache, a *Action, key string) error {
                        sh.ShowCmd("", "%s  # internal", joinUnambiguously(str.StringList("cat", c.OutputFile(stdoutEntry.OutputID))))
                }
                if !cfg.BuildN {
-                       sh.Print(string(stdout))
+                       sh.Printf("%s", stdout)
                }
        }
        return nil
@@ -626,7 +626,7 @@ func showStdout(b *Builder, c cache.Cache, a *Action, key string) error {
 
 // flushOutput flushes the output being queued in a.
 func (b *Builder) flushOutput(a *Action) {
-       b.Shell(a).Print(string(a.output))
+       b.Shell(a).Printf("%s", a.output)
        a.output = nil
 }
 
index 6fed8d9cbc3a4db9f792bc4886e36d61465be783..a527a809414ecb2f3f518042ff73d07584385173 100644 (file)
@@ -520,11 +520,11 @@ func (b *Builder) build(ctx context.Context, a *Action) (err error) {
                // different sections of the bootstrap script have to
                // be merged, the banners give patch something
                // to use to find its context.
-               sh.Print("\n#\n# " + p.ImportPath + "\n#\n\n")
+               sh.Printf("\n#\n# %s\n#\n\n", p.ImportPath)
        }
 
        if cfg.BuildV {
-               sh.Print(p.ImportPath + "\n")
+               sh.Printf("%s\n", p.ImportPath)
        }
 
        if p.Error != nil {
index a14635489fd5da94233356914066e7cc395ffb02..dd5a31c60668d8988edf52cb62ed38ea3f88f461 100644 (file)
@@ -71,16 +71,16 @@ func (sh *Shell) pkg() *load.Package {
        return sh.action.Package
 }
 
-// Print emits a to this Shell's output stream, formatting it like fmt.Print.
+// Printf emits a to this Shell's output stream, formatting it like fmt.Printf.
 // It is safe to call concurrently.
-func (sh *Shell) Print(a ...any) {
+func (sh *Shell) Printf(format string, a ...any) {
        sh.printLock.Lock()
        defer sh.printLock.Unlock()
-       sh.printer.Output(sh.pkg(), a...)
+       sh.printer.Printf(sh.pkg(), format, a...)
 }
 
-func (sh *Shell) printLocked(a ...any) {
-       sh.printer.Output(sh.pkg(), a...)
+func (sh *Shell) printfLocked(format string, a ...any) {
+       sh.printer.Printf(sh.pkg(), format, a...)
 }
 
 // Errorf reports an error on sh's package and sets the process exit status to 1.
@@ -371,7 +371,7 @@ func (sh *Shell) ShowCmd(dir string, format string, args ...any) {
        if dir != "" && dir != "/" {
                if dir != sh.scriptDir {
                        // Show changing to dir and update the current directory.
-                       sh.printLocked(sh.fmtCmd("", "cd %s\n", dir))
+                       sh.printfLocked("%s", sh.fmtCmd("", "cd %s\n", dir))
                        sh.scriptDir = dir
                }
                // Replace scriptDir is our working directory. Replace it
@@ -383,7 +383,7 @@ func (sh *Shell) ShowCmd(dir string, format string, args ...any) {
                cmd = strings.ReplaceAll(" "+cmd, " "+dir, dot)[1:]
        }
 
-       sh.printLocked(cmd + "\n")
+       sh.printfLocked("%s\n", cmd)
 }
 
 // reportCmd reports the output and exit status of a command. The cmdOut and
@@ -522,7 +522,7 @@ func (sh *Shell) reportCmd(desc, dir string, cmdOut []byte, cmdErr error) error
                a.output = append(a.output, err.Error()...)
        } else {
                // Write directly to the Builder output.
-               sh.Print(err.Error())
+               sh.Printf("%s", err)
        }
        return nil
 }