|
9 | 9 | "strings" |
10 | 10 | "sync" |
11 | 11 | "syscall" |
| 12 | + |
| 13 | + "golang.org/x/sys/unix" |
12 | 14 | ) |
13 | 15 |
|
14 | 16 | // logWriter is a thread-safe writer that only writes to the central log buffer. |
@@ -61,10 +63,10 @@ func InitialSetup() error { |
61 | 63 | return fmt.Errorf("failed to create pipe: %w", err) |
62 | 64 | } |
63 | 65 |
|
64 | | - if err := syscall.Dup2(int(w.Fd()), int(os.Stdout.Fd())); err != nil { |
| 66 | + if err := unix.Dup2(int(w.Fd()), int(os.Stdout.Fd())); err != nil { |
65 | 67 | return fmt.Errorf("failed to redirect stdout: %w", err) |
66 | 68 | } |
67 | | - if err := syscall.Dup2(int(w.Fd()), int(os.Stderr.Fd())); err != nil { |
| 69 | + if err := unix.Dup2(int(w.Fd()), int(os.Stderr.Fd())); err != nil { |
68 | 70 | return fmt.Errorf("failed to redirect stderr: %w", err) |
69 | 71 | } |
70 | 72 |
|
@@ -186,12 +188,12 @@ func Close() error { |
186 | 188 |
|
187 | 189 | // Restore stdio first, so the final flush goes to the console. |
188 | 190 | if originalStdout != -1 { |
189 | | - syscall.Dup2(originalStdout, int(os.Stdout.Fd())) |
| 191 | + unix.Dup2(originalStdout, int(os.Stdout.Fd())) |
190 | 192 | syscall.Close(originalStdout) |
191 | 193 | originalStdout = -1 |
192 | 194 | } |
193 | 195 | if originalStderr != -1 { |
194 | | - syscall.Dup2(originalStderr, int(os.Stderr.Fd())) |
| 196 | + unix.Dup2(originalStderr, int(os.Stderr.Fd())) |
195 | 197 | syscall.Close(originalStderr) |
196 | 198 | originalStderr = -1 |
197 | 199 | } |
|
0 commit comments