Skip to content

Commit d051de6

Browse files
authoredMay 1, 2024
Option to redirect devserver stdout/stderr to a file (#1452)
1 parent fe44a47 commit d051de6

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed
 

‎testsuite/devserver.go

+10
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ type DevServerOptions struct {
7777
LogLevel string
7878
// Additional arguments to the dev server.
7979
ExtraArgs []string
80+
// Where to redirect stdout and stderr, if nil they will be redirected to the current process.
81+
Stdout io.Writer
82+
Stderr io.Writer
8083
}
8184

8285
// Temporal CLI based DevServer
@@ -111,6 +114,13 @@ func StartDevServer(ctx context.Context, options DevServerOptions) (*DevServer,
111114
args := prepareCommand(&options, host, port, clientOptions.Namespace)
112115

113116
cmd := newCmd(exePath, args...)
117+
if options.Stdout != nil {
118+
cmd.Stdout = options.Stdout
119+
}
120+
if options.Stderr != nil {
121+
cmd.Stderr = options.Stderr
122+
}
123+
114124
clientOptions.Logger.Info("Starting DevServer", "ExePath", exePath, "Args", args)
115125
if err := cmd.Start(); err != nil {
116126
return nil, fmt.Errorf("failed starting: %w", err)

‎testsuite/process_nonwindows.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ import (
3333
// newCmd creates a new command with the given executable path and arguments.
3434
func newCmd(exePath string, args ...string) *exec.Cmd {
3535
cmd := exec.Command(exePath, args...)
36-
cmd.Stdout, cmd.Stderr = os.Stdout, os.Stderr
36+
cmd.Stdout = os.Stdout
37+
cmd.Stderr = os.Stderr
3738
return cmd
3839
}
3940

‎testsuite/process_windows.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ func newCmd(exePath string, args ...string) *exec.Cmd {
3737
// isolate the process and signals sent to it from the current console
3838
CreationFlags: syscall.CREATE_NEW_PROCESS_GROUP,
3939
}
40-
cmd.Stdout, cmd.Stderr = os.Stdout, os.Stderr
40+
cmd.Stdout = os.Stdout
41+
cmd.Stderr = os.Stderr
42+
4143
return cmd
4244
}
4345

0 commit comments

Comments
 (0)
Please sign in to comment.