1
0
mirror of https://github.com/golang/go synced 2024-11-26 20:01:19 -07:00

cmd/go: fix swigOne action with -n

Currently, if cmd/go builds a swig file with the -n (dry run) flag, it
will print the swig command invocation without executing it, but then
attempt to actually rename one of swig's output files, which will
fail. Make this rename conditional on -n. While we're here, we fix the
missing logging of the rename command with -x, too.

Change-Id: I1f6e6efc53dfe4ac5a42d26096679b97bc322827
Reviewed-on: https://go-review.googlesource.com/c/go/+/493255
Run-TryBot: Austin Clements <austin@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
Austin Clements 2023-05-06 15:27:02 -04:00
parent a3f69c778f
commit 711609d55f

View File

@ -3779,8 +3779,13 @@ func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, pcCFL
// going to compile.
goFile = objdir + goFile
newGoFile := objdir + "_" + base + "_swig.go"
if err := os.Rename(goFile, newGoFile); err != nil {
return "", "", err
if cfg.BuildX || cfg.BuildN {
b.Showcmd("", "mv %s %s", goFile, newGoFile)
}
if !cfg.BuildN {
if err := os.Rename(goFile, newGoFile); err != nil {
return "", "", err
}
}
return newGoFile, objdir + gccBase + gccExt, nil
}