WIP: the beginning of catalogue generation

See coop-cloud/organising#159.
This commit is contained in:
2021-09-14 16:00:15 +02:00
parent f93563588a
commit d290a4ec0b
4 changed files with 122 additions and 3 deletions

View File

@ -0,0 +1,17 @@
package catalogue
import (
"github.com/urfave/cli/v2"
)
// CatalogueCommand defines the `abra catalogue` command and sub-commands.
var CatalogueCommand = &cli.Command{
Name: "catalogue",
Usage: "Manage the recipe catalogue",
Aliases: []string{"c"},
ArgsUsage: "<recipe>",
Description: "This command helps recipe packagers interact with the recipe catalogue",
Subcommands: []*cli.Command{
catalogueGenerateCommand,
},
}

41
cli/catalogue/generate.go Normal file
View File

@ -0,0 +1,41 @@
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
},
}

View File

@ -6,6 +6,7 @@ import (
"os"
"coopcloud.tech/abra/cli/app"
"coopcloud.tech/abra/cli/catalogue"
"coopcloud.tech/abra/cli/recipe"
"coopcloud.tech/abra/cli/server"
"github.com/sirupsen/logrus"
@ -54,6 +55,7 @@ func RunApp(version, commit string) {
app.AppCommand,
server.ServerCommand,
recipe.RecipeCommand,
catalogue.CatalogueCommand,
VersionCommand,
UpgradeCommand,
},