Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow non-TTY stdin watch mode #446

Closed
wants to merge 3 commits into from
Closed

Conversation

0xradical
Copy link
Contributor

@0xradical 0xradical commented Nov 28, 2022

The presence of stdin doesn't necessarily mean there's an allocated tty. This breaks watch mode in non-TTY stdin contexts (e.g. docker, foreman, etc). A simple process.stdin.isTTY check would theoretically be enough but unfortunately, subprocesses don't have the same API, which are used extensively to test via calls to spawn.

A simple solution is to inject an env var dependency where we tell the process that it's indeed a TTY-allocated process and so, watch mode with exit handling is good to go.

A more robust but also annoying solution would involve using an actual terminal emulator (like Microsoft's node-pty). Though the environment gets exponentially more difficult to setup since it
involves compiling bindings, which require different requirements per OS.

Closes #424

The presence of stdin doesn't necessarily mean there's an allocated
tty. This breaks watch mode in non-TTY stdin contexts (e.g. docker,
foreman, etc). A simple process.stdin.isTTY check would theoretically
be enough but unfortunately, subprocesses don't have the same API,
which are used extensively to test via calls to `spawn`.

A simple solution is to inject an env var dependency where we tell
the process that it's indeed a TTY-allocated process and so, watch mode
with exit handling is good to go.
@RyanZim
Copy link
Collaborator

RyanZim commented Nov 28, 2022

@0xradical I assume c58170c was mistakenly pushed here?

@RyanZim
Copy link
Collaborator

RyanZim commented Nov 28, 2022

Otherwise, code looks good, but I want to test it out a bit before I merge.

@0xradical
Copy link
Contributor Author

@0xradical I assume c58170c was mistakenly pushed here?

Yes, I will create a separate branch with cleaned up history

@0xradical 0xradical closed this Nov 29, 2022
@RyanZim
Copy link
Collaborator

RyanZim commented Nov 29, 2022

Replaced by #448

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants