Something went wrong. Try again.
dockscope is a TUI for viewing Docker containers, logs, metrics and other info, inspired by lazydocker and dtop.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677package app
import ( "flag" "fmt" "log/slog" "os" "runtime/debug")
const shortIDLen = 12
var Version string
func Usage() { _, _ = fmt.Fprint(flag.CommandLine.Output(), "Usage: ds [flags]\n\nA terminal UI for Docker containers.\n\nFlags:\n")
flag.PrintDefaults()}
func ConfigureLogging(debug bool) { var handler slog.Handler if debug { handler = slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{Level: slog.LevelDebug}) } else { handler = slog.DiscardHandler }
slog.SetDefault(slog.New(handler))}
func ResolveVersion() string { if Version != "" { return Version }
if info, ok := debug.ReadBuildInfo(); ok { if s := versionFromBuildInfo(info); s != "" { return s } }
return "unknown"}
func versionFromBuildInfo(info *debug.BuildInfo) string { var rev, modified string
for _, s := range info.Settings { switch s.Key { case "vcs.revision": rev = s.Value case "vcs.modified": modified = s.Value } }
if rev != "" { short := rev if len(short) > shortIDLen { short = short[:shortIDLen] }
if modified == "true" { return short + "-dirty" }
return short }
if info.Main.Version != "" && info.Main.Version != "(devel)" { return info.Main.Version }
return ""}