MCPcopy Create free account
hub / github.com/koding/kite / getInstalledKites

Function getInstalledKites

kitectl/command/list.go:53–111  ·  view source on GitHub ↗

getIntalledKites returns installed kites in .kd/kites folder. an empty argument returns all kites.

(kiteName string)

Source from the content-addressed store, hash-verified

51// getIntalledKites returns installed kites in .kd/kites folder.
52// an empty argument returns all kites.
53func getInstalledKites(kiteName string) ([]*InstalledKite, error) {
54 kiteHome, err := kitekey.KiteHome()
55 if err != nil {
56 return nil, err
57 }
58 kitesPath := filepath.Join(kiteHome, "kites")
59
60 domains, err := ioutil.ReadDir(kitesPath)
61 if err != nil {
62 if os.IsNotExist(err) {
63 return nil, nil
64 }
65
66 return nil, err
67 }
68
69 var installedKites []*InstalledKite // to be returned
70
71 for _, domain := range domains {
72 domainPath := filepath.Join(kitesPath, domain.Name())
73 users, err := ioutil.ReadDir(domainPath)
74 if err != nil {
75 fmt.Println(err)
76 continue
77 }
78
79 for _, user := range users {
80 userPath := filepath.Join(domainPath, user.Name())
81 repos, err := ioutil.ReadDir(userPath)
82 if err != nil {
83 fmt.Println(err)
84 continue
85 }
86
87 for _, repo := range repos {
88 repoPath := filepath.Join(userPath, repo.Name())
89 versions, err := ioutil.ReadDir(repoPath)
90 if err != nil {
91 fmt.Println(err)
92 continue
93 }
94
95 for _, version := range versions {
96 versionPath := filepath.Join(repoPath, version.Name())
97 binaryPath := filepath.Join(versionPath, "bin", strings.TrimSuffix(repo.Name(), ".kite"))
98 _, err := os.Stat(binaryPath)
99 if err != nil {
100 fmt.Println(err)
101 continue
102 }
103
104 installedKites = append(installedKites, NewInstalledKite(domain.Name(), user.Name(), repo.Name(), version.Name()))
105 }
106 }
107 }
108 }
109
110 return installedKites, nil

Callers 2

RunMethod · 0.85
RunMethod · 0.85

Calls 1

NewInstalledKiteFunction · 0.85

Tested by

no test coverage detected