Add TerminalMode config; make Frequency optional when not TTY #59
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.
This change introduces a substantial change to how we handle the TTY discovery
when constructing the spinner. It adds a new bitflag field to the Config struct,
TerminalMode, that allows consumers to control whether the spinner tries to
automatically disocver if it's within a TTY and/or a dumb terminal. It also
allows you to override the behaviors, if you know the automatic mode won't do
what you want.
A side effect of this change is that you can now manually step the spinner
animation by setting TerminalMode: ForceNoTTYMode, and then starting the spinner
and calling the Message() method when you want to animate the spinner. To permit
this, the Frequency field in the Config struct is now not required when calling
the New() function. An error will be generated on Start() if it's within a TTY
and the Frequency is 0.
This also deprecates the NotTTY field in the Config struct.