github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/singletons/config/projects.go (about) 1 package config 2 3 import ( 4 "github.com/taubyte/go-seer" 5 singletonsI18n "github.com/taubyte/tau-cli/i18n/singletons" 6 ) 7 8 func Projects() *projectHandler { 9 getOrCreateConfig() 10 11 return &projectHandler{} 12 } 13 14 func (p *projectHandler) Root() *seer.Query { 15 return _config.Document().Get(singletonsI18n.ProjectsKey).Fork() 16 } 17 18 func (p *projectHandler) Get(name string) (project Project, err error) { 19 err = p.Root().Get(name).Value(&project) 20 if err != nil { 21 err = singletonsI18n.GettingProjectFailedWith(name, err) 22 return 23 } 24 25 return project, nil 26 } 27 28 func (p *projectHandler) Set(name string, project Project) error { 29 err := p.Root().Get(name).Set(project).Commit() 30 if err != nil { 31 return singletonsI18n.SettingProjectFailedWith(name, err) 32 } 33 34 return _config.root.Sync() 35 } 36 37 func (p *projectHandler) Delete(name string) error { 38 err := p.Root().Get(name).Delete().Commit() 39 if err != nil { 40 return singletonsI18n.DeletingProjectFailedWith(name, err) 41 } 42 43 return _config.root.Sync() 44 } 45 46 func (p *projectHandler) List() (projects map[string]Project) { 47 // Ignoring error here as it will just return an empty map 48 p.Root().Value(&projects) 49 50 return projects 51 }