feat: Implement colored output (with `NO_COLOR` support)

Offen
#145 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
50/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
rust
Bereich
cli

Rechercherichtung

Beginne in rust/stackablectl/src/main.rs rund um die verlinkte pretty-Methode und vergleiche, ob tracing_subscriber::fmt die Terminalerkennung übernehmen sollte. Führe die aufgelisteten stackablectl-Befehle mit umgeleiteter und weitergeleiteter Ausgabe aus, einschließlich eines leeren TERM, und bestätige, dass nicht-interaktive Ausgabe keine Escape-Sequenzen enthält, während die Ausgabe unterstützter Terminals weiterhin farbig bleibt und NO_COLOR berücksichtigt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Colours sould only be enabled when the terminal supports them.
For example, when redirecting output or piping to cat, there should be no escape sequences.

I believe there needs to be a condition around the pretty method (or maybe it should be handled by tracing_subscriber::fmt):

https://github.com/stackabletech/stackable-cockpit/blob/fe37d494359d91e32ae309a9f6d382b4a486c5a0/rust/stackablectl/src/main.rs#L31

Examples:

stackablectl --log-level=DEBUG stack list > /tmp/stackablectl.stdout       # plain redirect
stackablectl --log-level=DEBUG stack list | cat > /tmp/stackablectl.stdout # pipe through cat
TERM= stackablectl --log-level=DEBUG stack list > /tmp/stackablectl.stdout # explicitly set TERM to nothing

If I open it in VIM, it looks like this:

image

Vorherrschende Sprache
Rust
Sterne
10
Forks
5
Ø Merge
4 Std. 41 Min.
Gemergte PRs (30 T.)
4

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus stackabletech/stackablectl

Alle Issues in stackabletech/stackablectl

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.