github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/internal/ui/etui_event_handlers.go (about) 1 //go:build linux || darwin || netbsd 2 // +build linux darwin netbsd 3 4 package ui 5 6 import ( 7 "context" 8 "fmt" 9 "io" 10 "sync" 11 12 "github.com/gookit/color" 13 gosbomEventParsers "github.com/nextlinux/gosbom/gosbom/event/parsers" 14 "github.com/nextlinux/gosbom/internal" 15 "github.com/wagoodman/go-partybus" 16 "github.com/wagoodman/jotframe/pkg/frame" 17 ) 18 19 // handleAppUpdateAvailable is a UI handler function to display a new application version to the top of the screen. 20 func handleAppUpdateAvailable(_ context.Context, fr *frame.Frame, event partybus.Event, _ *sync.WaitGroup) error { 21 newVersion, err := gosbomEventParsers.ParseAppUpdateAvailable(event) 22 if err != nil { 23 return fmt.Errorf("bad AppUpdateAvailable event: %w", err) 24 } 25 26 line, err := fr.Prepend() 27 if err != nil { 28 return err 29 } 30 31 message := color.Magenta.Sprintf("New version of %s is available: %s", internal.ApplicationName, newVersion) 32 _, _ = io.WriteString(line, message) 33 34 return nil 35 }