-
Notifications
You must be signed in to change notification settings - Fork 25.2k
Check whether stdout is a real console #79882
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
Conversation
Adds a new "ConsoleLoader" that uses jANSI in a separate classloader to determine whether standard output is a real console (that is, not redirected to a file or /dev/null, etc)
Pinging @elastic/es-core-infra (Team:Core/Infra) |
@rjernst I think this roughly what you had in mind in your comments here #79740 (review) This implementation is a little rough (I'm not sure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, I verified the intended behavior manually too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
public static void init(PrintStream originalStandardOut) { | ||
BootstrapInfo.originalStandardOut = originalStandardOut; | ||
public static void init() { | ||
BootstrapInfo.consoleOutput = new SetOnce<>(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would just construct the SetOnce at the declaration of consoleOutput. Then it can be final.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks.
I'm not sure how I ended leaving it like that - a rush to prove the prototype, I guess.
Adds a new "ConsoleLoader" that uses jANSI in a separate classloader to determine whether standard output is a real console (that is, not redirected to a file or /dev/null, etc) Also updates security auto-configuration to only print out credentials when there is a console. Backport of: elastic#79882
Adds a new "ConsoleLoader" that uses jANSI in a separate classloader to determine whether standard output is a real console (that is, not redirected to a file or /dev/null, etc) Also updates security auto-configuration to only print out credentials when there is a console. Backport of: #79882 Co-authored-by: Elastic Machine <[email protected]>
…formance * upstream/master: (153 commits) [ML] update truncation default & adding field output when input is truncated (elastic#79942) [ML] stop using isAllowedByLicense for model license checks (elastic#79908) [ML] Retain built-in ML roles granting Kibana privileges (elastic#80014) [Transform] remove old mixed cluster BWC layers, not required for 8x (elastic#79927) Increase test timeout for CoordinatorTests testAllSearchesExecuted [Transform] add rolling upgrade tests for upgrade endpoint (elastic#79721) [ML] Update trained model docs for truncate parameter for bert tokenization (elastic#79652) `CoordinatorTests` sometimes needs three term bumps (elastic#79574) [ML] Account for service being triggered twice in tests (elastic#80000) SearchContext: remove unused variable (elastic#79917) Revert "Deprecate resolution loss on date field (elastic#78921)" (elastic#79914) Re-enable GeoIpDownloaderIT#testStartWithNoDatabases() (elastic#79907) Fix SnapshotBasedIndexRecoveryIT#testSeqNoBasedRecoveryIsUsedAfterPrimaryFailOver (elastic#79469) Fix RecoverySourceHandlerTests (elastic#79546) SQL: stabilize SqlSearchPageTimeoutIT (elastic#79928) Wait 3 seconds for the server to reload trust (elastic#79778) Skip automatically preserved request headers when rewriting (elastic#79973) Check whether stdout is a real console (elastic#79882) Convert remote license checker to use LicensedFeature (elastic#79876) Miscellaneous fixes for LDAP SDK v6 upgrade (elastic#79891) ... # Conflicts: # libs/x-content/src/main/java/org/elasticsearch/xcontent/support/filtering/FilterPath.java # libs/x-content/src/test/java/org/elasticsearch/xcontent/support/filtering/FilterPathGeneratorFilteringTests.java # libs/x-content/src/test/java/org/elasticsearch/xcontent/support/filtering/FilterPathTests.java
Adds a new "ConsoleLoader" that uses jANSI in a separate classloader
to determine whether standard output is a real console (that is, not
redirected to a file or /dev/null, etc)