Skip to content

Commit 64eaa62

Browse files
mirkoCrobumirkoCrobu
authored andcommitted
feat: enhance debug logs
1 parent 1128f20 commit 64eaa62

File tree

3 files changed

+27
-14
lines changed

3 files changed

+27
-14
lines changed

cmd/arduino-app-cli/app/new.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package app
22

33
import (
44
"context"
5+
"fmt"
56

67
"github.com/arduino/go-paths-helper"
78
"github.com/spf13/cobra"
@@ -58,6 +59,7 @@ func createHandler(ctx context.Context, name string, icon string, noPython, noSk
5859
return nil
5960
}
6061

62+
feedback.Debug(fmt.Sprintf("Creating app from existing app. new id: %q, name: %q", id, name))
6163
resp, err := orchestrator.CloneApp(ctx, orchestrator.CloneAppRequest{
6264
Name: &name,
6365
FromID: id,

cmd/arduino-app-cli/app/stop.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package app
22

33
import (
44
"context"
5-
"fmt"
65

76
"github.com/spf13/cobra"
87

@@ -33,25 +32,26 @@ func newStopCmd() *cobra.Command {
3332
}
3433

3534
func stopHandler(ctx context.Context, app app.ArduinoApp) error {
36-
out, _, getResult := feedback.OutputStreams()
3735

3836
for message := range orchestrator.StopApp(ctx, app) {
3937
switch message.GetType() {
4038
case orchestrator.ProgressType:
41-
fmt.Fprintf(out, "Progress: %.0f%%\n", message.GetProgress().Progress)
39+
feedback.Progress(message.GetProgress().Progress)
4240
case orchestrator.InfoType:
43-
fmt.Fprintln(out, "[INFO]", message.GetData())
41+
feedback.Info(message.GetData())
42+
case orchestrator.DebugType:
43+
feedback.Debug(message.GetData())
44+
case orchestrator.WarningType:
45+
feedback.Warning(message.GetData())
4446
case orchestrator.ErrorType:
4547
feedback.Fatal(message.GetError().Error(), feedback.ErrGeneric)
4648
return nil
4749
}
4850
}
49-
outputResult := getResult()
5051

5152
feedback.PrintResult(results.StopAppResult{
5253
AppName: app.Name,
5354
Status: "stopped",
54-
Output: outputResult,
5555
})
5656
return nil
5757
}

internal/orchestrator/orchestrator.go

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ func StartApp(ctx context.Context, docker *dockerClient.Client, provisioner *Pro
188188
return
189189
}
190190
}
191-
_ = yield(StreamMessage{Type: ProgressType, progress: &Progress{Name: "", Progress: 100.0}})
191+
_ = yield(StreamMessage{Type: ProgressType, progress: &Progress{Name: "", Progress: 1.0}})
192192
}
193193
}
194194

@@ -198,7 +198,7 @@ func StopApp(ctx context.Context, app app.ArduinoApp) iter.Seq[StreamMessage] {
198198
defer cancel()
199199

200200
callbackWriter := NewCallbackWriter(func(line string) {
201-
if !yield(StreamMessage{data: line}) {
201+
if !yield(StreamMessage{Type: DebugType, data: line}) {
202202
cancel()
203203
return
204204
}
@@ -209,35 +209,46 @@ func StopApp(ctx context.Context, app app.ArduinoApp) iter.Seq[StreamMessage] {
209209
if micro.OnBoard {
210210
// On imola we could just disable the microcontroller
211211
if err := micro.Disable(context.Background(), nil); err != nil {
212-
yield(StreamMessage{error: err})
212+
yield(StreamMessage{Type: ErrorType, error: err})
213213
return
214214
}
215215
}
216216
}
217217

218218
if app.MainPythonFile != nil {
219+
if !yield(StreamMessage{Type: InfoType, data: "stopping the app..."}) {
220+
cancel()
221+
return
222+
}
219223
provisioningStateDir, err := getProvisioningStateDir(app)
220224
if err != nil {
221-
yield(StreamMessage{error: err})
225+
yield(StreamMessage{Type: ErrorType, error: err})
222226
return
223227
}
224228
mainCompose := provisioningStateDir.Join("app-compose.yaml")
225229
// In case the app was never started
226230
if mainCompose.Exist() {
227-
process, err := paths.NewProcess(nil, "docker", "compose", "-f", mainCompose.String(), "stop", fmt.Sprintf("--timeout=%d", DefaultDockerStopTimeoutSeconds))
231+
232+
command := []string{"docker", "compose", "-f", mainCompose.String(), "stop", fmt.Sprintf("--timeout=%d", DefaultDockerStopTimeoutSeconds)}
233+
if !yield(StreamMessage{Type: DebugType, data: "Executing command: " + strings.Join(command, " ")}) {
234+
return
235+
}
236+
process, err := paths.NewProcess(nil, command...)
228237
if err != nil {
229-
yield(StreamMessage{error: err})
238+
yield(StreamMessage{Type: ErrorType, error: err})
230239
return
231240
}
232241
process.RedirectStderrTo(callbackWriter)
233242
process.RedirectStdoutTo(callbackWriter)
234243
if err := process.RunWithinContext(ctx); err != nil {
235-
yield(StreamMessage{error: err})
244+
yield(StreamMessage{Type: ErrorType, error: err})
236245
return
237246
}
247+
} else if !yield(StreamMessage{Type: InfoType, data: "App not running, nothing to stop."}) {
248+
return
238249
}
239250
}
240-
_ = yield(StreamMessage{progress: &Progress{Name: "", Progress: 100.0}})
251+
_ = yield(StreamMessage{Type: ProgressType, progress: &Progress{Name: "", Progress: 1.0}})
241252
}
242253
}
243254

0 commit comments

Comments
 (0)