forked from coop-cloud/abra
refactor: make ReadApps main API entrypoint
This allows AppsReadFS/AppsReadWeb to be used behind the scenes of this API for the conditional loading logic. All functions are left as public for now while we're experimenting.
This commit is contained in:
parent
56cec1580a
commit
381de28e83
@ -94,6 +94,28 @@ func AppsFSIsLatest() (bool, error) {
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func ReadApps() (Apps, error) {
|
||||
apps := make(Apps)
|
||||
|
||||
appsFSIsLatest, err := AppsFSIsLatest()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if !appsFSIsLatest {
|
||||
if err := ReadAppsWeb(&apps); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return apps, nil
|
||||
}
|
||||
|
||||
if err := ReadAppsFS(&apps); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return apps, nil
|
||||
}
|
||||
|
||||
func ReadAppsFS(target interface{}) error {
|
||||
appsJsonFS, err := ioutil.ReadFile(config.APPS_JSON)
|
||||
if err != nil {
|
||||
@ -105,36 +127,21 @@ func ReadAppsFS(target interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReadAppsWeb() (Apps, error) {
|
||||
apps := make(Apps)
|
||||
func ReadAppsWeb(target interface{}) error {
|
||||
if err := readJson(AppsUrl, &target); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
appsFSIsLatest, err := AppsFSIsLatest()
|
||||
appsJson, err := json.MarshalIndent(target, "", " ")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return err
|
||||
}
|
||||
|
||||
if !appsFSIsLatest {
|
||||
if err := readJson(AppsUrl, &apps); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
appsJson, err := json.MarshalIndent(apps, "", " ")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err := ioutil.WriteFile(config.APPS_JSON, appsJson, 0644); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return apps, nil
|
||||
if err := ioutil.WriteFile(config.APPS_JSON, appsJson, 0644); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := ReadAppsFS(&apps); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return apps, nil
|
||||
return nil
|
||||
}
|
||||
|
||||
func SortByAppName(apps Apps) []string {
|
||||
@ -150,7 +157,7 @@ var recipeListCommand = &cli.Command{
|
||||
Name: "list",
|
||||
Aliases: []string{"ls"},
|
||||
Action: func(c *cli.Context) error {
|
||||
appSpecs, err := ReadAppsWeb()
|
||||
apps, err := ReadApps()
|
||||
if err != nil {
|
||||
logrus.Fatal(err.Error())
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user