Skip to content

Commit 3b02734

Browse files
authored
Merge pull request #94 from superfly/jailer-cfg-stdouterr
Allow setting stdout and stderr with a JailerCfg
2 parents 4f11ac7 + 7e97bde commit 3b02734

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

jailer.go

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,11 @@ type JailerConfig struct {
8989

9090
// ChrootStrategy will dictate how files are transfered to the root drive.
9191
ChrootStrategy HandlersAdapter
92+
93+
// Stdout specifies the IO writer for STDOUT to use when spawning the jailer.
94+
Stdout io.Writer
95+
// Stderr specifies the IO writer for STDERR to use when spawning the jailer.
96+
Stderr io.Writer
9297
}
9398

9499
// JailerCommandBuilder will build a jailer command. This can be used to
@@ -291,6 +296,17 @@ func jail(ctx context.Context, m *Machine, cfg *Config) error {
291296
}
292297

293298
cfg.SocketPath = filepath.Join(rootfs, "api.socket")
299+
300+
stdout := cfg.JailerCfg.Stdout
301+
if stdout == nil {
302+
stdout = os.Stdout
303+
}
304+
305+
stderr := cfg.JailerCfg.Stderr
306+
if stderr == nil {
307+
stderr = os.Stderr
308+
}
309+
294310
m.cmd = NewJailerCommandBuilder().
295311
WithID(cfg.JailerCfg.ID).
296312
WithUID(*cfg.JailerCfg.UID).
@@ -300,8 +316,8 @@ func jail(ctx context.Context, m *Machine, cfg *Config) error {
300316
WithChrootBaseDir(cfg.JailerCfg.ChrootBaseDir).
301317
WithDaemonize(cfg.JailerCfg.Daemonize).
302318
WithSeccompLevel(cfg.JailerCfg.SeccompLevel).
303-
WithStdout(os.Stdout).
304-
WithStderr(os.Stderr).
319+
WithStdout(stdout).
320+
WithStderr(stderr).
305321
Build(ctx)
306322

307323
if err := cfg.JailerCfg.ChrootStrategy.AdaptHandlers(&m.Handlers); err != nil {

0 commit comments

Comments
 (0)