mirror of
https://github.com/anchore/syft.git
synced 2025-11-17 08:23:15 +01:00
* add bubbletea UI Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * swap pipeline to go 1.20.x and add attest guard for cosign binary Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * update note in developing.md about the required golang version Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * fix merge conflict for windows path handling Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * temp test for attest handler Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> * add addtional test iterations for background reader Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com> --------- Signed-off-by: Alex Goodman <alex.goodman@anchore.com> Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>
37 lines
1.2 KiB
Go
37 lines
1.2 KiB
Go
//go:build linux || darwin || netbsd
|
|
// +build linux darwin netbsd
|
|
|
|
package ui
|
|
|
|
import (
|
|
"os"
|
|
"runtime"
|
|
|
|
"golang.org/x/term"
|
|
|
|
"github.com/anchore/clio"
|
|
handler "github.com/anchore/syft/cmd/syft/cli/ui"
|
|
)
|
|
|
|
// Select is responsible for determining the specific UI function given select user option, the current platform
|
|
// config values, and environment status (such as a TTY being present). The first UI in the returned slice of UIs
|
|
// is intended to be used and the UIs that follow are meant to be attempted only in a fallback posture when there
|
|
// are environmental problems (e.g. cannot write to the terminal). A writer is provided to capture the output of
|
|
// the final SBOM report.
|
|
func Select(verbose, quiet bool) (uis []clio.UI) {
|
|
isStdoutATty := term.IsTerminal(int(os.Stdout.Fd()))
|
|
isStderrATty := term.IsTerminal(int(os.Stderr.Fd()))
|
|
notATerminal := !isStderrATty && !isStdoutATty
|
|
|
|
switch {
|
|
case runtime.GOOS == "windows" || verbose || quiet || notATerminal || !isStderrATty:
|
|
uis = append(uis, None(quiet))
|
|
default:
|
|
// TODO: it may make sense in the future to pass handler options into select
|
|
h := handler.New(handler.DefaultHandlerConfig())
|
|
uis = append(uis, New(h, verbose, quiet))
|
|
}
|
|
|
|
return uis
|
|
}
|