Documentation ¶
Overview ¶
Package display implements functions for displaying output to users.
Index ¶
- Variables
- func ClearProgress()
- func File() string
- func Handler(entry *log.Entry) error
- func InProgress(message string)
- func JSON(data interface{}) (int, error)
- func SetDebug(debug bool, setVerbose bool)
- func SetFile(filename string) error
- func SetInteractive(interactive bool)
- func Template(tmpl *template.Template, data interface{}) (string, error)
- func TemplateFile(filename string, data interface{}) (string, error)
- func TemplateFormatTabs(tmpl string, data interface{}, minWidth, tabWidth, padding int) (string, error)
- func TemplateString(templateString string, data interface{}) (string, error)
- func Test()
- type Display
- type ProgressTracker
Constants ¶
This section is empty.
Variables ¶
var TestHandler log.Handler
TestHandler collects log entries during testing.
Functions ¶
func Handler ¶
Handler handles log entries. It multiplexes them into two outputs, writing human-readable messages to STDERR and machine-readable entries to a log file.
TODO: does this need to be synchronised?
func InProgress ¶
func InProgress(message string)
InProgress shows a progress spinner with a message.
func SetDebug ¶
SetDebug turns debug logging to STDERR on or off.
The log file always writes debug-level entries.
func SetInteractive ¶
func SetInteractive(interactive bool)
SetInteractive turns colors and ANSI control characters on or off.
func TemplateFile ¶
TemplateFile renders a template file and its context to string.
func TemplateFormatTabs ¶ added in v0.7.27
func TemplateFormatTabs(tmpl string, data interface{}, minWidth, tabWidth, padding int) (string, error)
TemplateFormatTabs renders a template with the desired tab format.
func TemplateString ¶ added in v0.7.27
TemplateString renders a template from a string template.
Types ¶
type Display ¶ added in v1.0.5
type Display interface { // Start a new process and start tracking its progress // `StartProcess("nodejs")` // -> [] nodejs StartProcess(processName string) ProgressTracker // Stop the progress display. All future updates from processes will be ignored Stop() }
A Display provides progress indicators for running "processes".
Running "process" indicators are joined by spaces, e.g., [] nodejs(Discovery) golang(Analysis 1/5)
See ProgressTracker for examples
func StartDisplay ¶ added in v1.0.5
func StartDisplay() Display
type ProgressTracker ¶ added in v1.0.5
type ProgressTracker interface { // Begin a new step in this process // Clears the current count of Completed and Tasks Begin(stepName string) // Update the number of completed actions // When called before `AddTasks`, the count of tasks will display as "?" AddCompleted(n int) // Update the number of tasks that need to be run // When called before `AddCompleted`, the count of completed will display as "0" AddTasks(n int) // End the progress tracker for this process // // NOTE: When reusing the same ProgressTracker, be sure to call `Begin` End() }
A ProgressTracker is created by calling `Display.StartProcess(processName string)`
A ProgressTracker is used to show the current step and progress for a given"process" Examples below are using `Display.StartProcess("nodejs")`
`Begin("Discovery")` -> [] nodejs(Discovery)
`Begin("Discovery")` `AddCompleted(5)` -> [] nodejs(Discovery 5/?)
`Begin("Analysis")` `AddTasks(5)` -> [] nodejs(Analysis 0/5) `AddCompleted(1)` -> [] nodejs(Analysis 1/5)
`End()` -> []
NOTE: only the `AddCompleted` and `AddTasks` functions are safe to be called concurrently.