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  }