@@ -24,6 +24,7 @@ import (
2424
2525 sdkv1 "buf.build/gen/go/stealthrocket/dispatch-proto/protocolbuffers/go/dispatch/sdk/v1"
2626 tea "github.com/charmbracelet/bubbletea"
27+ "github.com/charmbracelet/lipgloss"
2728 "github.com/google/uuid"
2829 "github.com/spf13/cobra"
2930 "google.golang.org/protobuf/proto"
@@ -47,6 +48,12 @@ var httpClient = &http.Client{
4748 Timeout : pollTimeout ,
4849}
4950
51+ var (
52+ dispatchLogPrefixStyle = lipgloss .NewStyle ().Foreground (greenColor )
53+ appLogPrefixStyle = lipgloss .NewStyle ().Foreground (magentaColor )
54+ logPrefixSeparatorStyle = lipgloss .NewStyle ().Foreground (grayColor )
55+ )
56+
5057func runCommand () * cobra.Command {
5158 cmd := & cobra.Command {
5259 Use : "run" ,
@@ -103,14 +110,10 @@ previous run.`, defaultEndpoint),
103110 if Verbose {
104111 level = slog .LevelDebug
105112 }
106- dispatchPrefix := []byte (pad ("dispatch" , prefixWidth ) + " | " )
107- if Color {
108- dispatchPrefix = []byte ("\033 [32m" + pad ("dispatch" , prefixWidth ) + " \033 [90m|\033 [0m " )
109- }
110113 slog .SetDefault (slog .New (& slogHandler {
111114 stream : & prefixLogWriter {
112115 stream : logWriter ,
113- prefix : dispatchPrefix ,
116+ prefix : [] byte ( dispatchLogPrefixStyle . Render ( pad ( "dispatch" , prefixWidth )) + logPrefixSeparatorStyle . Render ( " | " )) ,
114117 },
115118 level : level ,
116119 }))
@@ -275,13 +278,9 @@ Run 'dispatch help run' to learn about Dispatch sessions.`, BridgeSession)
275278 }
276279
277280 // Add a prefix to the local application's logs.
278- appPrefix := []byte (pad (arg0 , prefixWidth ) + " | " )
279- appSuffix := []byte ("\n " )
280- if Color {
281- appPrefix = []byte ("\033 [35m" + pad (arg0 , prefixWidth ) + " \033 [90m|\033 [0m " )
282- }
283- go printPrefixedLines (logWriter , stdout , appPrefix , appSuffix )
284- go printPrefixedLines (logWriter , stderr , appPrefix , appSuffix )
281+ appLogPrefix := []byte (appLogPrefixStyle .Render (pad (arg0 , prefixWidth )) + logPrefixSeparatorStyle .Render (" | " ))
282+ go printPrefixedLines (logWriter , stdout , appLogPrefix )
283+ go printPrefixedLines (logWriter , stderr , appLogPrefix )
285284
286285 err = cmd .Wait ()
287286
@@ -591,15 +590,15 @@ func withoutEnv(env []string, prefixes ...string) []string {
591590 })
592591}
593592
594- func printPrefixedLines (w io.Writer , r io.Reader , prefix , suffix []byte ) {
593+ func printPrefixedLines (w io.Writer , r io.Reader , prefix []byte ) {
595594 scanner := bufio .NewScanner (r )
596595 buffer := bytes .NewBuffer (nil )
597596 buffer .Write (prefix )
598597
599598 for scanner .Scan () {
600599 buffer .Truncate (len (prefix ))
601600 buffer .Write (scanner .Bytes ())
602- buffer .Write ( suffix )
601+ buffer .WriteByte ( '\n' )
603602 _ , _ = w .Write (buffer .Bytes ())
604603 }
605604}
0 commit comments