Skip to content

Commit 6cc7c66

Browse files
bfirshandreasjansson
authored andcommitted
Use a logwriter to print build logs
Fixes #109 Signed-off-by: Ben Firshman <[email protected]>
1 parent 27185a9 commit 6cc7c66

File tree

2 files changed

+53
-18
lines changed

2 files changed

+53
-18
lines changed

pkg/cli/build.go

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package cli
22

33
import (
4+
"context"
5+
"fmt"
6+
47
"github.com/spf13/cobra"
58

69
"github.com/replicate/cog/pkg/client"
10+
"github.com/replicate/cog/pkg/global"
711
"github.com/replicate/cog/pkg/logger"
8-
"github.com/replicate/cog/pkg/util/console"
12+
"github.com/replicate/cog/pkg/util/terminal"
913
)
1014

1115
var buildNoFollow bool
@@ -47,31 +51,44 @@ func showBuildLogs(cmd *cobra.Command, args []string) error {
4751
}
4852

4953
c := client.NewClient()
50-
// FIXME(bfirsh): why isn't this a logger.Logger?
54+
55+
ui := terminal.ConsoleUI(context.Background())
56+
defer ui.Close()
57+
5158
logChan, err := c.GetBuildLogs(model, buildID, !buildNoFollow)
5259
if err != nil {
5360
return err
5461
}
55-
for entry := range logChan {
56-
outputLogEntry(entry, "")
62+
63+
if global.Verbose {
64+
for entry := range logChan {
65+
fmt.Println(entry.Line)
66+
}
67+
} else {
68+
logWriter := logger.NewTerminalLogger(ui)
69+
pipeLogChanToLogger(logChan, logWriter)
5770
}
5871

5972
return nil
6073
}
6174

62-
func outputLogEntry(entry *client.LogEntry, prefix string) {
63-
switch entry.Level {
64-
case logger.LevelFatal:
65-
console.Fatal(prefix + entry.Line)
66-
case logger.LevelError:
67-
console.Error(prefix + entry.Line)
68-
case logger.LevelWarn:
69-
console.Warn(prefix + entry.Line)
70-
case logger.LevelStatus: // TODO(andreas): handle status differently or remove
71-
console.Info(prefix + entry.Line)
72-
case logger.LevelInfo:
73-
console.Info(prefix + entry.Line)
74-
case logger.LevelDebug:
75-
console.Debug(prefix + entry.Line)
75+
// FIXME(bfirsh):
76+
func pipeLogChanToLogger(logChan chan *client.LogEntry, logWriter logger.Logger) {
77+
for entry := range logChan {
78+
switch entry.Level {
79+
case logger.LevelFatal:
80+
logWriter.WriteError(fmt.Errorf(entry.Line))
81+
case logger.LevelError:
82+
logWriter.WriteError(fmt.Errorf(entry.Line))
83+
case logger.LevelWarn:
84+
logWriter.WriteError(fmt.Errorf(entry.Line))
85+
case logger.LevelStatus:
86+
logWriter.Info(entry.Line)
87+
case logger.LevelInfo:
88+
logWriter.Info(entry.Line)
89+
case logger.LevelDebug:
90+
logWriter.Debug(entry.Line)
91+
}
7692
}
93+
7794
}

pkg/cli/push.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"github.com/spf13/cobra"
88

99
"github.com/replicate/cog/pkg/client"
10+
"github.com/replicate/cog/pkg/logger"
1011
"github.com/replicate/cog/pkg/model"
1112
"github.com/replicate/cog/pkg/util/console"
1213
)
@@ -119,3 +120,20 @@ func mergeLogs(channelMap map[string]chan *client.LogEntry) <-chan *archLogEntry
119120
}()
120121
return out
121122
}
123+
124+
func outputLogEntry(entry *client.LogEntry, prefix string) {
125+
switch entry.Level {
126+
case logger.LevelFatal:
127+
console.Fatal(prefix + entry.Line)
128+
case logger.LevelError:
129+
console.Error(prefix + entry.Line)
130+
case logger.LevelWarn:
131+
console.Warn(prefix + entry.Line)
132+
case logger.LevelStatus: // TODO(andreas): handle status differently or remove
133+
console.Info(prefix + entry.Line)
134+
case logger.LevelInfo:
135+
console.Info(prefix + entry.Line)
136+
case logger.LevelDebug:
137+
console.Debug(prefix + entry.Line)
138+
}
139+
}

0 commit comments

Comments
 (0)