When sending a SIGINT to end the rake tailwindcss:watch (or, for modern Procfile-based Rails applications, bin/dev) task, Ruby processes this via an Interrupt exception that can be rescued to handle gracefully tearing the process down. The tailwindcss:watch task, however, does not handle this exception, so when the task (or Rails' server via bin/dev) is terminated via the standard practice of using ^C, that exception propagates and causes tailwindcss:watch to exit 1. For some (including myself), it's also resulting in a large backtrace; this can erroneously lead developers to think something is wrong.
This patch fixes #318 by rescuing Interrupt exceptions, which I've verified in my own applications that use this gem. It didn't seem like there's any necessary teardown that needs to happen upon quitting the process, so I left the rescue clause blank except for a log line when in verbose mode. I'm happy to make any necessary changes there, however! Additionally, if that rescue should occur elsewhere (e.g. directly in exe/tailwindcss), I'm happy to move it there (I wasn't sure if that's where it belonged, as the other commands aren't meant to run indefinitely until killed).
When sending a SIGINT to end the
rake tailwindcss:watch
(or, for modern Procfile-based Rails applications,bin/dev
) task, Ruby processes this via anInterrupt
exception that can be rescued to handle gracefully tearing the process down. Thetailwindcss:watch
task, however, does not handle this exception, so when the task (or Rails' server viabin/dev
) is terminated via the standard practice of using^C
, that exception propagates and causestailwindcss:watch
toexit 1
. For some (including myself), it's also resulting in a large backtrace; this can erroneously lead developers to think something is wrong.This patch fixes #318 by rescuing
Interrupt
exceptions, which I've verified in my own applications that use this gem. It didn't seem like there's any necessary teardown that needs to happen upon quitting the process, so I left therescue
clause blank except for a log line when in verbose mode. I'm happy to make any necessary changes there, however! Additionally, if thatrescue
should occur elsewhere (e.g. directly inexe/tailwindcss
), I'm happy to move it there (I wasn't sure if that's where it belonged, as the other commands aren't meant to run indefinitely until killed).