abra/cli/catalogue/generate.go
decentral1se d290a4ec0b
Some checks failed
continuous-integration/drone/push Build is failing
WIP: the beginning of catalogue generation
See coop-cloud/organising#159.
2021-09-14 16:00:15 +02:00

42 lines
950 B
Go

package catalogue
import (
"path"
"strings"
"coopcloud.tech/abra/pkg/catalogue"
"coopcloud.tech/abra/pkg/config"
"coopcloud.tech/abra/pkg/git"
"github.com/sirupsen/logrus"
"github.com/urfave/cli/v2"
)
var catalogueGenerateCommand = &cli.Command{
Name: "generate",
Aliases: []string{"g"},
Usage: "Generate a new copy of the catalogue",
BashComplete: func(c *cli.Context) {},
Action: func(c *cli.Context) error {
catl, err := catalogue.ReadRecipeCatalogue()
if err != nil {
logrus.Fatal(err)
}
for recipeName, recipeMeta := range catl {
recipeDir := path.Join(config.ABRA_DIR, "apps", strings.ToLower(recipeName))
if err := git.Clone(recipeDir, recipeMeta.Repository); err != nil {
logrus.Fatal(err)
}
if err := git.EnsureUpToDate(recipeDir); err != nil {
logrus.Fatal(err)
}
}
// for reach app, build the recipemeta from parsing
// spit out a JSON file
return nil
},
}