Skip to content

Commit f872552

Browse files
authored
Pass wrapper version as env var in the process runner (#5)
1 parent 3b9f711 commit f872552

4 files changed

Lines changed: 31 additions & 13 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ dist/
44
/.venv
55
/redbot-update
66
*.exe
7+
generated_*.go
78
**/resources/generated/
89
resources_windows.syso

go/build_tools/generate_versioninfo/main.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"encoding/json"
5+
"fmt"
56
"os"
67
"path/filepath"
78
"text/template"
@@ -38,7 +39,8 @@ func main() {
3839
panic(err)
3940
}
4041
generateAppManifestFile(v)
41-
generateVersionInfoFile(v)
42+
generateVersionInfoJsonFile(v)
43+
generateVersionInfoGoFile(v)
4244
}
4345

4446
// generate app manifest
@@ -59,7 +61,7 @@ func generateAppManifestFile(v PythonProjectVersion) {
5961
}
6062

6163
// generate versioninfo.json
62-
func generateVersionInfoFile(v PythonProjectVersion) {
64+
func generateVersionInfoJsonFile(v PythonProjectVersion) {
6365
data, err := os.ReadFile(filepath.Join(baseResourcesDir, "versioninfo.json"))
6466
if err != nil {
6567
panic(err)
@@ -83,3 +85,15 @@ func generateVersionInfoFile(v PythonProjectVersion) {
8385
panic(err)
8486
}
8587
}
88+
89+
func generateVersionInfoGoFile(v PythonProjectVersion) {
90+
f, err := os.Create("generated_versioninfo.go")
91+
if err != nil {
92+
panic(err)
93+
}
94+
fmt.Fprintf(f, `// Code generated by go/build_tools/generate_versioninfo. DO NOT EDIT.
95+
package main
96+
97+
const wrapperVersion = %#v
98+
`, v.String())
99+
}

go/cmd/redbot-update/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ func main() {
104104
logger := slog.New(slog.NewMultiHandler(handlers...))
105105
slog.SetDefault(logger)
106106

107-
slog.Debug("redbot-update wrapper started", "pid", pidLogValue{})
107+
slog.Debug("redbot-update wrapper started", "wrapperVersion", wrapperVersion, "pid", pidLogValue{})
108108

109109
exe, err := osutils.GetExecutableWithPreservedSymlinks(DefaultProgramName)
110110
if err != nil {
@@ -163,7 +163,7 @@ func main() {
163163
}
164164
}
165165

166-
runner := NewProcessRunner(exe, pythonExe)
166+
runner := NewProcessRunner(wrapperVersion, exe, pythonExe)
167167
if err := runner.Start(); err != nil {
168168
fmt.Printf("Failed to start the process:\n%v\n", err)
169169
os.Exit(1)

go/cmd/redbot-update/runner.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,18 +61,20 @@ func (o *SpawnProcessRequestOutput) SetRequestType(v string) {
6161
}
6262

6363
type ProcessRunner struct {
64-
currentCmd *exec.Cmd
65-
wrapperExe string
66-
runnerDir string
67-
pythonExe string
68-
startArgs []string
64+
currentCmd *exec.Cmd
65+
wrapperVersion string
66+
wrapperExe string
67+
runnerDir string
68+
pythonExe string
69+
startArgs []string
6970
}
7071

71-
func NewProcessRunner(wrapperExe, pythonExe string) *ProcessRunner {
72+
func NewProcessRunner(wrapperVersion, wrapperExe, pythonExe string) *ProcessRunner {
7273
return &ProcessRunner{
73-
wrapperExe: wrapperExe,
74-
pythonExe: pythonExe,
75-
startArgs: append([]string{"-m", "redbot._update"}, os.Args[1:]...),
74+
wrapperVersion: wrapperVersion,
75+
wrapperExe: wrapperExe,
76+
pythonExe: pythonExe,
77+
startArgs: append([]string{"-m", "redbot._update"}, os.Args[1:]...),
7678
}
7779
}
7880

@@ -228,6 +230,7 @@ func (r *ProcessRunner) Start() error {
228230
cmd.Stdout = os.Stdout
229231
cmd.Stderr = os.Stderr
230232
cmd.Env = append(os.Environ(),
233+
"REDBOT_UPDATE_RUNNER_WRAPPER_VERSION="+r.wrapperVersion,
231234
"REDBOT_UPDATE_RUNNER_WRAPPER_EXE="+r.wrapperExe,
232235
"REDBOT_UPDATE_RUNNER_DIR="+r.runnerDir,
233236
)

0 commit comments

Comments
 (0)