Skip to content
This repository was archived by the owner on Mar 6, 2025. It is now read-only.

Commit d060ca1

Browse files
fix: a lot of lint issues (#124)
* fix: a lot of lint issues fixes a couple of missing error handlings, security issues, and ignores a bunch of client closing error handling warnings Signed-off-by: Carlos A Becker <[email protected]> * fix: more linting fixes Signed-off-by: Carlos A Becker <[email protected]> Co-authored-by: Ayman Bagabas <[email protected]>
1 parent c8b679f commit d060ca1

33 files changed

+226
-184
lines changed

.golangci.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,8 @@ linters:
3232
- unconvert
3333
- unparam
3434
- whitespace
35+
36+
rules:
37+
- linters:
38+
- godox
39+
severity: warn

client/auth.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func (cc *Client) Auth() (*charm.Auth, error) {
1919
if err != nil {
2020
return nil, charm.ErrAuthFailed{Err: err}
2121
}
22-
defer s.Close()
22+
defer s.Close() // nolint:errcheck
2323

2424
b, err := s.Output("api-auth")
2525
if err != nil {

client/client.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ func NewClient(cfg *Config) (*Client, error) {
109109
return cc, nil
110110
}
111111

112+
// NewClientWithDefaults creates a new Charm client with default values.
112113
func NewClientWithDefaults() (*Client, error) {
113114
cfg, err := ConfigFromEnv()
114115
if err != nil {
@@ -127,7 +128,7 @@ func (cc *Client) JWT(aud ...string) (string, error) {
127128
if err != nil {
128129
return "", err
129130
}
130-
defer s.Close()
131+
defer s.Close() // nolint:errcheck
131132
jwt, err := s.Output(strings.Join(append([]string{"jwt"}, aud...), " "))
132133
if err != nil {
133134
return "", err
@@ -141,7 +142,7 @@ func (cc *Client) ID() (string, error) {
141142
if err != nil {
142143
return "", err
143144
}
144-
defer s.Close()
145+
defer s.Close() // nolint:errcheck
145146
id, err := s.Output("id")
146147
if err != nil {
147148
return "", err
@@ -155,7 +156,7 @@ func (cc *Client) AuthorizedKeys() (string, error) {
155156
if err != nil {
156157
return "", err
157158
}
158-
defer s.Close()
159+
defer s.Close() // nolint:errcheck
159160
keys, err := s.Output("keys")
160161
if err != nil {
161162
return "", err
@@ -169,7 +170,7 @@ func (cc *Client) AuthorizedKeysWithMetadata() (*charm.Keys, error) {
169170
if err != nil {
170171
return nil, err
171172
}
172-
defer s.Close()
173+
defer s.Close() // nolint:errcheck
173174

174175
b, err := s.Output("api-keys")
175176
if err != nil {
@@ -192,7 +193,7 @@ func (cc *Client) UnlinkAuthorizedKey(key string) error {
192193
if err != nil {
193194
return err
194195
}
195-
defer s.Close()
196+
defer s.Close() // nolint:errcheck
196197
k := charm.PublicKey{Key: key}
197198
in, err := s.StdinPipe()
198199
if err != nil {
@@ -215,6 +216,7 @@ func (cc *Client) UnlinkAuthorizedKey(key string) error {
215216
return nil
216217
}
217218

219+
// KeygenType returns the keygen key type.
218220
func (cfg *Config) KeygenType() keygen.KeyType {
219221
switch cfg.KeyType {
220222
case "Ed25519", "ed25519":
@@ -280,14 +282,14 @@ func (cc *Client) sshSession() (*ssh.Session, error) {
280282
func (cc *Client) DataPath() (string, error) {
281283
if cc.Config.DataDir != "" {
282284
return filepath.Join(cc.Config.DataDir, cc.Config.Host), nil
283-
} else {
284-
scope := gap.NewScope(gap.User, filepath.Join("charm", cc.Config.Host))
285-
dataPath, err := scope.DataPath("")
286-
if err != nil {
287-
return "", err
288-
}
289-
return dataPath, nil
290285
}
286+
287+
scope := gap.NewScope(gap.User, filepath.Join("charm", cc.Config.Host))
288+
dataPath, err := scope.DataPath("")
289+
if err != nil {
290+
return "", err
291+
}
292+
return dataPath, nil
291293
}
292294

293295
// FindAuthKeys looks in a user's XDG charm-dir for possible auth keys.

client/crypt.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,7 @@ func (cc *Client) findIdentities() ([]sasquatch.Identity, error) {
5858

5959
// EncryptKeys returns all of the symmetric encrypt keys for the authed user.
6060
func (cc *Client) EncryptKeys() ([]*charm.EncryptKey, error) {
61-
err := cc.cryptCheck()
62-
if err != nil {
61+
if err := cc.cryptCheck(); err != nil {
6362
return nil, err
6463
}
6564
return cc.plainTextEncryptKeys, nil
@@ -75,8 +74,12 @@ func (cc *Client) addEncryptKey(pk string, gid string, key string, createdAt *ti
7574
if err != nil {
7675
return err
7776
}
78-
w.Write([]byte(key))
79-
w.Close()
77+
if _, err := w.Write([]byte(key)); err != nil {
78+
return err
79+
}
80+
if err := w.Close(); err != nil {
81+
return err
82+
}
8083

8184
encKey := base64.StdEncoding.EncodeToString(buf.Bytes())
8285
ek := charm.EncryptKey{}

client/http.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func (cc *Client) AuthedJSONRequest(method string, path string, reqBody interfac
3737
return err
3838
}
3939
if respBody != nil {
40-
defer resp.Body.Close()
40+
defer resp.Body.Close() // nolint:errcheck
4141
dec := json.NewDecoder(resp.Body)
4242
return dec.Decode(respBody)
4343
}

client/link.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ func (cc *Client) LinkGen(lh charm.LinkHandler) error {
1414
if err != nil {
1515
return err
1616
}
17-
defer s.Close()
17+
defer s.Close() // nolint:errcheck
1818
out, err := s.StdoutPipe()
1919
if err != nil {
2020
return err
@@ -83,7 +83,7 @@ func (cc *Client) Link(lh charm.LinkHandler, code string) error {
8383
if err != nil {
8484
return err
8585
}
86-
defer s.Close()
86+
defer s.Close() // nolint:errcheck
8787
out, err := s.StdoutPipe()
8888
if err != nil {
8989
return err

client/news.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
charm "github.com/charmbracelet/charm/proto"
99
)
1010

11+
// NewsList lists the server news.
1112
func (cc *Client) NewsList(tags []string, page int) ([]*charm.News, error) {
1213
var nl []*charm.News
1314

@@ -22,6 +23,7 @@ func (cc *Client) NewsList(tags []string, page int) ([]*charm.News, error) {
2223
return nl, nil
2324
}
2425

26+
// News shows a given news.
2527
func (cc *Client) News(id string) (*charm.News, error) {
2628
var n *charm.News
2729
err := cc.AuthedJSONRequest("GET", fmt.Sprintf("/v1/news/%s", url.QueryEscape(id)), nil, &n)

cmd/backup_keys.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ func validateDirectory(path string) error {
9999

100100
// Everything looks OK!
101101
return nil
102-
103102
} else if os.IsNotExist(err) {
104103
return fmt.Errorf("'%v' does not exist", path)
105104
} else {
@@ -112,10 +111,10 @@ func createTar(source string, target string) error {
112111
if err != nil {
113112
return err
114113
}
115-
defer tarfile.Close()
114+
defer tarfile.Close() // nolint:errcheck
116115

117116
tarball := tar.NewWriter(tarfile)
118-
defer tarball.Close()
117+
defer tarball.Close() // nolint:errcheck
119118

120119
info, err := os.Stat(source)
121120
if err != nil {
@@ -158,7 +157,7 @@ func createTar(source string, target string) error {
158157
if err != nil {
159158
return err
160159
}
161-
defer file.Close()
160+
defer file.Close() // nolint:errcheck
162161
_, err = io.Copy(tarball, file)
163162
return err
164163
})

cmd/crypt.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func cryptEncrypt(cmd *cobra.Command, args []string) error {
7676
if err != nil {
7777
return err
7878
}
79-
eb.Close()
79+
eb.Close() // nolint:errcheck
8080
cf := cryptFile{
8181
Data: base64.StdEncoding.EncodeToString(buf.Bytes()),
8282
}
@@ -99,7 +99,7 @@ func cryptDecrypt(cmd *cobra.Command, args []string) error {
9999
r = os.Stdin
100100
default:
101101
f, err := os.Open(args[0])
102-
defer f.Close()
102+
defer f.Close() // nolint:errcheck
103103
r = f
104104
if err != nil {
105105
return err

cmd/fs.go

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ var (
3939
Use: "fs",
4040
Hidden: false,
4141
Short: "Use the Charm file system.",
42-
Long: paragraph(fmt.Sprintf("Commands to set, get and delete data from your Charm Cloud backed file system.")),
42+
Long: paragraph("Commands to set, get and delete data from your Charm Cloud backed file system."),
4343
Args: cobra.NoArgs,
4444
RunE: func(cmd *cobra.Command, args []string) error {
4545
return nil
@@ -120,12 +120,7 @@ func newLocalRemotePath(rawPath string) localRemotePath {
120120
}
121121

122122
func (lrp *localRemotePath) separator() string {
123-
switch lrp.pathType {
124-
case localPath:
125-
return string(os.PathSeparator)
126-
default:
127-
return "/"
128-
}
123+
return "/"
129124
}
130125

131126
func (lrfs *localRemoteFS) Open(name string) (fs.File, error) {
@@ -173,7 +168,7 @@ func (lrfs *localRemoteFS) write(name string, src fs.File) error {
173168
if err != nil {
174169
return err
175170
}
176-
defer f.Close()
171+
defer f.Close() // nolint:errcheck
177172
_, err = io.Copy(f, src)
178173
if err != nil {
179174
return err
@@ -194,7 +189,7 @@ func (lrfs *localRemoteFS) copy(srcName string, dstName string, recursive bool)
194189
if err != nil {
195190
return err
196191
}
197-
defer src.Close()
192+
defer src.Close() // nolint:errcheck
198193
stat, err := src.Stat()
199194
if err != nil {
200195
return err
@@ -216,7 +211,7 @@ func (lrfs *localRemoteFS) copy(srcName string, dstName string, recursive bool)
216211
if err != nil {
217212
return err
218213
}
219-
defer wsrc.Close()
214+
defer wsrc.Close() // nolint:errcheck
220215
wp := newLocalRemotePath(wps)
221216
wpp := strings.Split(filepath.Clean(wp.path), wp.separator())
222217
rp := path.Join(wpp[parents:]...)
@@ -235,17 +230,20 @@ func fsCat(cmd *cobra.Command, args []string) error {
235230
if err != nil {
236231
return err
237232
}
238-
defer f.Close()
233+
defer f.Close() // nolint:errcheck
234+
239235
fi, err := f.Stat()
240236
if err != nil {
241237
return err
242238
}
239+
243240
if fi.IsDir() {
244241
fmt.Printf("cat: %s: Is a directory\n", args[0])
245-
} else {
246-
io.Copy(os.Stdout, f)
242+
return nil
247243
}
248-
return nil
244+
245+
_, err = io.Copy(os.Stdout, f)
246+
return err
249247
}
250248

251249
func fsMove(cmd *cobra.Command, args []string) error {
@@ -297,7 +295,7 @@ func fsList(cmd *cobra.Command, args []string) error {
297295
if err != nil {
298296
return err
299297
}
300-
defer f.Close()
298+
defer f.Close() // nolint:errcheck
301299
fi, err := f.Stat()
302300
if err != nil {
303301
return err
@@ -350,8 +348,7 @@ func printDir(f fs.ReadDirFile) error {
350348
}
351349
fprintFileInfo(w, dfi)
352350
}
353-
w.Flush()
354-
return nil
351+
return w.Flush()
355352
}
356353

357354
func init() {

0 commit comments

Comments
 (0)