...
1 package vset
2
3 import (
4 "fmt"
5 "os"
6 "strings"
7 )
8
9
10
11
12
13
14 type Path interface {
15 Update(path string) string
16 Validate(path string)
17 }
18
19 func Update(path string) (string, error) {
20
21 if !strings.HasSuffix(path, "/") {
22 path = path + "/"
23 }
24
25 if err := Validate(path); err != nil {
26 return "", err
27 }
28 goLintPath = path
29 path = path + ".vscode"
30
31
32 _, err := os.Stat(path)
33 if os.IsNotExist(err) {
34 err = os.MkdirAll(path, 0755)
35 if err != nil {
36 return "", fmt.Errorf("failed to create .vscode dir: %w", err)
37 }
38 }
39
40 path = path + "/settings.json"
41 _, err = os.ReadFile(path)
42
43
44 if err != nil {
45 err = os.WriteFile(path, []byte(`{}`), 0644)
46 if err != nil {
47 return "", fmt.Errorf("failed to create settings.json: %w", err)
48 }
49 }
50 return path, nil
51 }
52
53 func Validate(path string) error {
54
55 _, err := os.Stat(path)
56 if os.IsNotExist(err) {
57 return fmt.Errorf("invalid path: %w", err)
58 }
59 return nil
60 }
61
View as plain text