(p toolExecParams)
| 107 | } |
| 108 | |
| 109 | func (cmd *mainCmd) toolExecVersion(p toolExecParams) int { |
| 110 | version, err := binaryVersion() |
| 111 | if err != nil { |
| 112 | logf(cmd.Stderr, "errtrace version failed: %v", err) |
| 113 | } |
| 114 | |
| 115 | tool := exec.Command(p.Tool, p.ToolArgs...) |
| 116 | var stdout bytes.Buffer |
| 117 | tool.Stdout = &stdout |
| 118 | tool.Stderr = cmd.Stderr |
| 119 | if err := tool.Run(); err != nil { |
| 120 | if exitErr, ok := err.(*exec.ExitError); ok { |
| 121 | return exitErr.ExitCode() |
| 122 | } |
| 123 | |
| 124 | logf(cmd.Stderr, "tool %v failed: %v", p.Tool, err) |
| 125 | return 1 |
| 126 | } |
| 127 | |
| 128 | if _, err := fmt.Fprintf( |
| 129 | cmd.Stdout, |
| 130 | "%s-errtrace-%s%s\n", |
| 131 | strings.TrimSpace(stdout.String()), |
| 132 | version, |
| 133 | p.versionCacheKey(), |
| 134 | ); err != nil { |
| 135 | logf(cmd.Stderr, "failed to write version to stdout: %v", err) |
| 136 | return 1 |
| 137 | } |
| 138 | |
| 139 | return 0 |
| 140 | } |
| 141 | |
| 142 | func (cmd *mainCmd) toolExecRewrite(pkg string, p toolExecParams) (exitCode int) { |
| 143 | // We only need to modify the arguments for "compile" calls which work with .go files. |
no test coverage detected