Avoid stdin read by tailwindcss watch command #349
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
tailwindcss -w
reads stdin, probably to detect stdin close.When using binding.irb or debugger with tailwindcss-rails, some keystrokes are taken by tailwindcss and IRB/Debug can't read from stdin correctly. Keystroke disappears, and sometimes hangs up.
To not let tailwindcss watch command read stdin, we should use
IO.popen(command, 'r+')
instead ofsystem(*command)
.Workaround for #346
Reproduction code
Side effect
Before this pull request, Ctrl-D will stop
rails s
. Closing stdin will stop tailwind, then puma will stop with a messageDetected tailwind has gone away, stopping Puma...
After this change, Ctrl-D won't stop tailwind.