fail

package
v0.2.14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ExitSuccess             = 0 // Command completed successfully
	ExitGeneralError        = 1 // Unclassified/unexpected error (default)
	ExitUsageError          = 2 // Bad flags, invalid selectors, missing args, unknown commands
	ExitAuthFailure         = 3 // HTTP 401/403, missing/invalid credentials
	ExitPartialFailure      = 4 // Some resources succeeded, others failed (push/pull/delete/validate)
	ExitCancelled           = 5 // User cancelled (SIGINT) or context.Canceled
	ExitVersionIncompatible = 6 // Grafana version < 12
)

Exit code taxonomy for gcx.

These codes let scripts and CI pipelines distinguish between error categories without parsing stderr text.

Variables

This section is empty.

Functions

func SameRenderedMessage

func SameRenderedMessage(details string, parent string) bool

SameRenderedMessage reports whether details and parent render the same message, used to suppress redundant output in error formatting.

Types

type DetailedError

type DetailedError struct {
	// Summary is a one-liner that briefly describes the error.
	// This field is expected to NOT be empty.
	Summary string

	// Details holds additional information on the error.
	// Optional.
	Details string

	// Parent holds a reference to a parent error.
	// Optional.
	Parent error

	// Suggestions holds list of suggestions related to the error.
	// Optional.
	Suggestions []string

	// DocsLink holds a link to a documentation page related to the error.
	// Optional.
	DocsLink string

	// ExitCode indicates which exit code should be used as a result of this error.
	// If nil, 1 should be used.
	// Optional.
	ExitCode *int
}

DetailedError is used to describe errors in a human-friendly way. It can be used to format errors as follows:

Error: File not found
│
│ could not read './cmd/config/testdata/config.yamls'
│
├─ Details:
│
│ open ./cmd/config/testdata/config.yamls: no such file or directory
│
├─ Suggestions:
│
│ • Check for typos in the command's arguments
│
├─ Learn more:
│
│ https://example.com/docs/errors.html#some-error
│
└─

func (DetailedError) Error

func (e DetailedError) Error() string

func (DetailedError) WriteJSON

func (e DetailedError) WriteJSON(w io.Writer, exitCode int) error

WriteJSON writes the error as a JSON object to the given writer. The output shape is: {"error": {"summary": "...", "exitCode": N, ...}} Optional fields (details, suggestions, docsLink) are omitted when empty. The exitCode in JSON matches the process exit code derived from ExitCode. Box-drawing characters in Details and Suggestions are replaced with plain ASCII equivalents as a defensive measure against rendering artefacts in agent-mode JSON output.

func (DetailedError) WriteJSONWithItems

func (e DetailedError) WriteJSONWithItems(w io.Writer, exitCode int, items any) error

WriteJSONWithItems writes a combined {"items": [...], "error": {...}} envelope to w. Used for partial failures where some results succeeded and others failed — a single JSON object carries both the partial results and the error context.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL