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  }