ficsit-cli-flake/cli/context.go

48 lines
823 B
Go
Raw Normal View History

2021-12-02 04:00:33 +00:00
package cli
import "github.com/pkg/errors"
type GlobalContext struct {
Installations *Installations
Profiles *Profiles
}
var globalContext *GlobalContext
func InitCLI() (*GlobalContext, error) {
if globalContext != nil {
return globalContext, nil
}
profiles, err := InitProfiles()
if err != nil {
return nil, errors.Wrap(err, "failed to initialize profiles")
}
installations, err := InitInstallations()
if err != nil {
return nil, errors.Wrap(err, "failed to initialize installations")
}
ctx := &GlobalContext{
Installations: installations,
Profiles: profiles,
}
globalContext = ctx
return ctx, nil
}
func (g *GlobalContext) Save() error {
if err := g.Installations.Save(); err != nil {
return err
}
if err := g.Profiles.Save(); err != nil {
return err
}
return nil
}