()
| 171 | } |
| 172 | |
| 173 | function getStderr() { |
| 174 | if (stderr) return stderr; |
| 175 | stderr = createWritableStdioStream(2); |
| 176 | stderr.destroySoon = stderr.destroy; |
| 177 | stderrDestroy = stderr._destroy; |
| 178 | // Override _destroy so that the fd is never actually closed. |
| 179 | stderr._destroy = dummyDestroy; |
| 180 | if (stderr.isTTY) { |
| 181 | process.on('SIGWINCH', refreshStderrOnSigWinch); |
| 182 | } |
| 183 | addCleanup(function cleanupStderr() { |
| 184 | stderr._destroy = stderrDestroy; |
| 185 | stderr.destroy(); |
| 186 | process.removeListener('SIGWINCH', refreshStderrOnSigWinch); |
| 187 | stderr = undefined; |
| 188 | }); |
| 189 | // No need to add deserialize callback because stderr = undefined above |
| 190 | // causes the stream to be lazily initialized again later. |
| 191 | return stderr; |
| 192 | } |
| 193 | |
| 194 | function getStdin() { |
| 195 | if (stdin) return stdin; |
nothing calls this directly
no test coverage detected