Skip to content

Commit 0b1bc34

Browse files
committed
Better logging
1 parent c82b89c commit 0b1bc34

File tree

5 files changed

+49
-14
lines changed

5 files changed

+49
-14
lines changed

api.go

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

33
import (
4+
"encoding/json"
45
"github.com/pterm/pterm"
56
"io"
67
"net/http"
@@ -33,15 +34,28 @@ func SendAPIRequest(r *http.Request) []byte {
3334
client := &http.Client{Timeout: 10 * time.Second}
3435
resp, err := client.Do(r)
3536
CheckError(err)
36-
defer resp.Body.Close()
37+
defer func(Body io.ReadCloser) {
38+
CheckError(Body.Close())
39+
}(resp.Body)
3740

3841
body, err := io.ReadAll(resp.Body)
3942
CheckError(err)
4043

4144
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
42-
pterm.Error.Printf("API %d → %s\n", resp.StatusCode, body)
45+
var apiErr APIError
46+
err = json.Unmarshal(body, &apiErr)
47+
if err != nil {
48+
pterm.Error.Printf("API Error %d → %s\n", resp.StatusCode, body)
49+
} else {
50+
pterm.Error.Println(apiErr.Message)
51+
}
4352
os.Exit(1)
4453
}
4554

4655
return body
4756
}
57+
58+
type APIError struct {
59+
Error string `json:"error"`
60+
Message string `json:"message"`
61+
}

cmd_publish.go

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,22 @@ package yaakcli
22

33
import (
44
"archive/zip"
5-
"fmt"
5+
"encoding/json"
66
"github.com/pterm/pterm"
77
"github.com/spf13/cobra"
88
"io"
99
"os"
1010
"path/filepath"
11+
"time"
1112
)
1213

1314
var publishCmd = &cobra.Command{
1415
Use: "publish",
1516
Short: "Publish a Yaak plugin version to the plugin registry",
1617
Args: cobra.MaximumNArgs(1),
1718
Run: func(cmd *cobra.Command, args []string) {
19+
spinner, _ := pterm.DefaultSpinner.WithDelay(1 * time.Second).Start("Publishing plugin...")
20+
1821
pluginDir, err := os.Getwd()
1922
CheckError(err)
2023

@@ -43,7 +46,7 @@ var publishCmd = &cobra.Command{
4346
}
4447
}
4548

46-
pterm.Info.Println("Creating zip file ", pluginDir)
49+
spinner.UpdateText("Archiving plugin")
4750

4851
go func() {
4952
defer func() {
@@ -90,12 +93,18 @@ var publishCmd = &cobra.Command{
9093
return err
9194
})
9295
CheckError(err)
93-
pterm.Info.Println("Zip file created")
9496
}()
9597

98+
spinner.UpdateText("Uploading plugin")
9699
req := NewAPIRequest("POST", "/plugins/publish", zipPipeReader)
97100
body := SendAPIRequest(req)
98-
pterm.Success.Println("Plugin published")
99-
fmt.Printf("%s\n", body)
101+
102+
var response struct {
103+
Version string `json:"version"`
104+
URL string `json:"url"`
105+
}
106+
107+
CheckError(json.Unmarshal(body, &response))
108+
spinner.Success("Plugin published ", response.Version, "\n → ", response.URL)
100109
},
101110
}

cmd_whoami.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ var whoamiCmd = &cobra.Command{
1111
Run: func(cmd *cobra.Command, args []string) {
1212
req := NewAPIRequest("GET", "/whoami", nil)
1313
body := SendAPIRequest(req)
14-
pterm.Info.Printf("%s\n", body)
14+
pterm.Success.Printf("%s\n", body)
1515
},
1616
}

go.mod

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
module github.com/mountain-loop/yaak-cli
22

3-
go 1.22
3+
go 1.23.0
4+
5+
toolchain go1.23.2
46

57
require (
68
github.com/evanw/esbuild v0.21.5
79
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c
8-
github.com/pterm/pterm v0.12.79
10+
github.com/pterm/pterm v0.12.81
911
github.com/spf13/cobra v1.8.1
1012
github.com/zalando/go-keyring v0.2.6
1113
)
@@ -15,7 +17,7 @@ require (
1517
atomicgo.dev/cursor v0.2.0 // indirect
1618
atomicgo.dev/keyboard v0.2.9 // indirect
1719
atomicgo.dev/schedule v0.1.0 // indirect
18-
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
20+
github.com/containerd/console v1.0.5 // indirect
1921
github.com/danieljoos/wincred v1.2.2 // indirect
2022
github.com/godbus/dbus/v5 v5.1.0 // indirect
2123
github.com/gookit/color v1.5.4 // indirect
@@ -25,7 +27,7 @@ require (
2527
github.com/rivo/uniseg v0.4.7 // indirect
2628
github.com/spf13/pflag v1.0.5 // indirect
2729
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
28-
golang.org/x/sys v0.26.0 // indirect
29-
golang.org/x/term v0.16.0 // indirect
30-
golang.org/x/text v0.16.0 // indirect
30+
golang.org/x/sys v0.33.0 // indirect
31+
golang.org/x/term v0.32.0 // indirect
32+
golang.org/x/text v0.26.0 // indirect
3133
)

go.sum

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ github.com/atomicgo/cursor v0.0.1/go.mod h1:cBON2QmmrysudxNBFthvMtN32r3jxVRIvzkU
2121
github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U=
2222
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY=
2323
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
24+
github.com/containerd/console v1.0.5 h1:R0ymNeydRqH2DmakFNdmjR2k0t7UPuiOV/N/27/qqsc=
25+
github.com/containerd/console v1.0.5/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
2426
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
2527
github.com/danieljoos/wincred v1.2.2 h1:774zMFJrqaeYCK2W57BgAem/MLi6mtSE47MB6BOJ0i0=
2628
github.com/danieljoos/wincred v1.2.2/go.mod h1:w7w4Utbrz8lqeMbDAK0lkNJUv5sAOkFi7nd/ogr0Uh8=
@@ -65,6 +67,8 @@ github.com/pterm/pterm v0.12.36/go.mod h1:NjiL09hFhT/vWjQHSj1athJpx6H8cjpHXNAK5b
6567
github.com/pterm/pterm v0.12.40/go.mod h1:ffwPLwlbXxP+rxT0GsgDTzS3y3rmpAO1NMjUkGTYf8s=
6668
github.com/pterm/pterm v0.12.79 h1:lH3yrYMhdpeqX9y5Ep1u7DejyHy7NSQg9qrBjF9dFT4=
6769
github.com/pterm/pterm v0.12.79/go.mod h1:1v/gzOF1N0FsjbgTHZ1wVycRkKiatFvJSJC4IGaQAAo=
70+
github.com/pterm/pterm v0.12.81 h1:ju+j5I2++FO1jBKMmscgh5h5DPFDFMB7epEjSoKehKA=
71+
github.com/pterm/pterm v0.12.81/go.mod h1:TyuyrPjnxfwP+ccJdBTeWHtd/e0ybQHkOS/TakajZCw=
6872
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
6973
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
7074
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
@@ -116,20 +120,26 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
116120
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
117121
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
118122
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
123+
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
124+
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
119125
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
120126
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
121127
golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
122128
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
123129
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
124130
golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE=
125131
golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
132+
golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg=
133+
golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ=
126134
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
127135
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
128136
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
129137
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
130138
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
131139
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
132140
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
141+
golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
142+
golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
133143
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
134144
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
135145
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=

0 commit comments

Comments
 (0)