github.com/omnigres/cli@v0.1.4/cmd/revision.go (about) 1 package cmd 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "github.com/charmbracelet/lipgloss" 7 "github.com/charmbracelet/log" 8 cloudevents "github.com/cloudevents/sdk-go/v2" 9 "github.com/spf13/cobra" 10 ) 11 12 var revisionCmd = &cobra.Command{ 13 Use: "revision", 14 Short: "Revision management", 15 } 16 17 func init() { 18 rootCmd.AddCommand(revisionCmd) 19 revisionCmd.AddCommand(captureCmd) 20 revisionCmd.AddCommand(revisionListCmd) 21 revisionCmd.AddCommand(migrateCmd) 22 23 handler := cloudeventHandler{ 24 Callback: func(e *cloudevents.Event) { 25 switch e.Type() { 26 case "org.omnigres.omni_schema.progress_report.v1": 27 message := string(e.Data()) 28 err := json.Unmarshal(e.Data(), &message) 29 if err != nil { 30 log.Errorf("Error parsing progress report %s", string(e.Data())) 31 return 32 } 33 34 style := lipgloss.NewStyle(). 35 SetString("⏳ " + message). 36 PaddingLeft(2). 37 Width(120). 38 Foreground(lipgloss.Color("201")) 39 fmt.Print(style.Render() + "\r") 40 default: 41 } 42 }, 43 } 44 cloudeventHandlers = append(cloudeventHandlers, handler) 45 }