-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Root bug for outstanding display/output issues/requests #746
Comments
Awesome, thanks :-) |
To complete this list I think Ninja should provide enough control on its To achieve that, I have thought about the following extension so far:
On Fri, Apr 25, 2014 at 11:07 PM, Nico Weber [email protected]
Nicolas Desprès |
Good discussion here: https://groups.google.com/forum/#!topic/ninja-build/ahcZQuMOs2w |
Ninja output into dumb terminal is not machine parsable #1010 |
Print successful command along with their output. #658 |
Support table status a la Buck build system: #1020 |
Split the "smart terminal" configuration into three separate settings: color, elide, and reprint. Allow setting these options individually or in bulk through a new -O option. To have build output into a dumb terminal still include ANSI color codes, for example if you wanted to pass continuous build output through ansi2html, use: ninja -O color To force smart terminal output, use: ninja -O smart To force smart terminal output, but still print full status descriptions: ninja -O smart -O noelide Addresses some of the issues in ninja-build#746 while allowing for adding more output options in the future.
Split the "smart terminal" configuration into three separate settings: color, elide, and reprint. Allow setting these options individually or in bulk through a new -O option. To have build output into a dumb terminal still include ANSI color codes, for example if you wanted to pass continuous build output through ansi2html, use: ninja -O color To force smart terminal output, use: ninja -O smart To force smart terminal output, but still print full status descriptions: ninja -O smart -O noelide Addresses some of the issues in ninja-build#746 while allowing for adding more output options in the future.
Split the "smart terminal" configuration into three separate settings: color, elide, and reprint. Allow setting these options individually or in bulk through a new -O option. To have build output into a dumb terminal still include ANSI color codes, for example if you wanted to pass continuous build output through ansi2html, use: ninja -O color To force smart terminal output, use: ninja -O smart To force smart terminal output, but still print full status descriptions: ninja -O smart -O noelide Addresses some of the issues in ninja-build#746 while allowing for adding more output options in the future.
Print output file on failure #1033 |
Make width of failure printouts configurable. #606 |
Print commands when they start: #1158 |
Adds the general-purpose -o flag to address ninja-build#746, with options for verbosity (ninja-build#480) and control sequence stripping (ninja-build#581, ninja-build#672, ninja-build#916). Also provides the ability to enable both verbose and raw output as a workaround for ninja-build#1214 without changing the existing verbose behavior. -o verbose show all command lines while building -o quiet hide command lines and outputs while building -o raw never strip control sequences from output -o strip always strip control sequences from output -o color strip most control sequences from output, but retain color codes This patch does not affect Ninja's defaults of normal verbosity and smart terminal detection for escape sequence stripping. "-o color" is particularly useful for utilities like `head` and `less -R` that interpret color codes from stdin and pass this colored output to stdout. Any valid ANSI color code, of the form: `'ESC' '[' [ colors ] 'm'` where `colors` is a semicolon-delimited list of optional integers: `[ n ] [ ';' colors ]` is retained in its entirety when using "-o color" (any other CSI escape sequences besides ANSI color codes are still stripped for non-smart terminals).
Adds the general-purpose -o flag to address ninja-build#746, with options for verbosity (ninja-build#480) and control sequence stripping (ninja-build#581, ninja-build#672, ninja-build#916). Also provides the ability to enable both verbose and raw output as a workaround for ninja-build#1214 without changing the existing verbose behavior. -o verbose show all command lines while building -o quiet hide command lines and outputs while building -o raw never strip control sequences from output -o strip always strip control sequences from output -o color strip most control sequences from output, but retain color codes This patch does not affect Ninja's defaults of normal verbosity and smart terminal detection for escape sequence stripping. "-o color" is particularly useful for utilities like `head` and `less -R` that interpret color codes from stdin and pass this colored output to stdout. Any valid ANSI color code, of the form: `'ESC' '[' [ colors ] 'm'` where `colors` is a semicolon-delimited list of optional integers: `[ n ] [ ';' colors ]` is retained in its entirety when using "-o color" (any other CSI escape sequences besides ANSI color codes are still stripped for non-smart terminals).
Adds the general-purpose -o flag to address ninja-build#746, with options for verbosity (ninja-build#480) and control sequence stripping (ninja-build#581, ninja-build#672, ninja-build#916). Also provides the ability to enable both verbose and raw output as a workaround for ninja-build#1214 without changing the existing verbose behavior. -o verbose show all command lines while building -o quiet hide command lines and outputs while building -o raw never strip control sequences from output -o strip always strip control sequences from output -o color strip most control sequences from output, but retain color codes This patch does not affect Ninja's defaults of normal verbosity and smart terminal detection for escape sequence stripping. "-o color" is particularly useful for utilities like `head` and `less -R` that interpret color codes from stdin and pass this colored output to stdout. Any valid ANSI color code, of the form: `'ESC' '[' [ colors ] 'm'` where `colors` is a semicolon-delimited list of optional integers: `[ n ] [ ';' colors ]` is retained in its entirety when using "-o color" (any other CSI escape sequences besides ANSI color codes are still stripped for non-smart terminals).
Adds the general-purpose -o flag to address ninja-build#746, with options for verbosity (ninja-build#480) and control sequence stripping (ninja-build#581, ninja-build#672, ninja-build#916). Also provides the ability to enable both verbose and raw output as a workaround for ninja-build#1214 without changing the existing verbose behavior. -o verbose show all command lines while building -o quiet hide command lines and outputs while building -o raw never strip control sequences from output -o strip always strip control sequences from output -o color strip most control sequences from output, but retain color codes This patch does not affect Ninja's defaults of normal verbosity and smart terminal detection for escape sequence stripping. "-o color" is particularly useful for utilities like `head` and `less -R` that interpret color codes from stdin and pass this colored output to stdout. Any valid ANSI color code, of the form: `'ESC' '[' [ colors ] 'm'` where `colors` is a semicolon-delimited list of optional integers: `[ n ] [ ';' colors ]` is retained in its entirety when using "-o color" (any other CSI escape sequences besides ANSI color codes are still stripped for non-smart terminals).
I think a nice way to fix all these is by adding support for external frontends. Check out the PR by colincross: #1210 The PR implements the point @nicolasdespres said:
I've extended Colin's Python command line frontend which you can use with the PR which already fixes some of the other points (e.g. color) raised here. https://bixense.com/ja/ |
I would like to renew the proposition I have made above in this thread on June, 5th 2014 to use only a limited set of environment variables to configure Ninja's output. I think this is enough and have a small impact on Ninja's codebase while giving all the power to external scripts to do what they need to build nice frontend. That would preserve Ninja's philosophy to do one thing well and remain fast by delegating the work. |
I've been out of the ninja game for years so unsubscribing from this. Feel free to close if no longer useful, or @ me if you want me to see a followup. |
I've created a label and added all the bugs and PRs from here that are still opened: https://github.com/ninja-build/ninja/issues?q=label%3Afrontend |
As of now these are the open ninja issues that have to do with status display or ninja output. Listing them in hopes of a cohesive plan forming.
curses-based rule progress indicator #717
Support color in NINJA_STATUS #713
print "still waiting" for long running commands if we serialize on them #678
Address FIXME: Add --no-strip-ansi-escapes option #672
Throttle rate of output messages #663
Use ANSI escapes to output to Cygwin-based terminals #659
Proposed/still running #629
Add NINJA_SMART_TERMINAL environment variable, with on, off, and hide_newline options #581
Use SetConsoleTextAttribute on Windows to simulate color #486
Add a
-q
"quiet" option. #480Automatically use pager for failed output #413
"smart" output (e.g. overprinting) doesn't work under cygwin #374
Slow down on big tool output #326
Feature request -- print elapsed time #267
Show progress when waiting #111
The text was updated successfully, but these errors were encountered: