mirror of
https://gitea.com/gitea/tea.git
synced 2026-10-26 11:01:25 +01:00
fix(output): always report warnings on stderr
Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
3 files changed
+10
-8
No files matched your search
@@ -133,19 +133,20 @@ func writeView[T any](a *application, cmd *cobra.Command, item T, view func(T) t
|
||||
// done reports a completed mutation on stderr, such as "✓ Closed issue alice/x#5 (Fix login)",
|
||||
// when people read stdout: on a TTY and without --json.
|
||||
func (a *application) done(cmd *cobra.Command, format string, args ...any) {
|
||||
if !a.deps.Streams.OutTTY || a.options.json != "" {
|
||||
return
|
||||
}
|
||||
a.feedback(cmd, "✓", "green", format, args...)
|
||||
}
|
||||
|
||||
// warn reports a mutation that had nothing to do, such as "! Issue alice/x#5 (Fix login) is already
|
||||
// closed", under the same conditions as done.
|
||||
// warn reports on stderr a mutation that had nothing to do, such as "! Issue alice/x#5 (Fix login)
|
||||
// is already closed", or a part of one that failed. Unlike done it is never silenced, so scripts
|
||||
// and --json callers still learn about partial failures.
|
||||
func (a *application) warn(cmd *cobra.Command, format string, args ...any) {
|
||||
a.feedback(cmd, "!", "yellow", format, args...)
|
||||
}
|
||||
|
||||
func (a *application) feedback(cmd *cobra.Command, icon, color, format string, args ...any) {
|
||||
if !a.deps.Streams.OutTTY || a.options.json != "" {
|
||||
return
|
||||
}
|
||||
fmt.Fprintln(cmd.ErrOrStderr(), terminal.Colorize(color, icon, a.colorEnabled())+" "+terminal.SafeLine(fmt.Sprintf(format, args...)))
|
||||
}
|
||||
|
||||
|
||||
@@ -359,8 +359,8 @@ func TestMutationFeedback(t *testing.T) {
|
||||
tty bool
|
||||
}{
|
||||
{name: "terminal", tty: true, out: "https://example.org/12\n", stderr: "✓ Created issue alice/x#12 (Fix[2J login)\n! Issue alice/x#12 (Fix[2J login) is already closed\n"},
|
||||
{name: "piped", out: "https://example.org/12\n"},
|
||||
{name: "JSON", tty: true, json: "number"},
|
||||
{name: "piped", out: "https://example.org/12\n", stderr: "! Issue alice/x#12 (Fix[2J login) is already closed\n"},
|
||||
{name: "JSON", tty: true, json: "number", stderr: "! Issue alice/x#12 (Fix[2J login) is already closed\n"},
|
||||
} {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
deps, out, diagnostics := testDeps(t)
|
||||
|
||||
Reference in new issue
Block a user