feat: "app new" supports writing env files
And, automagically, chaos commit hashes.
This commit is contained in:
parent
56068362e8
commit
95c598d030
@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"coopcloud.tech/abra/cli/internal"
|
"coopcloud.tech/abra/cli/internal"
|
||||||
|
"coopcloud.tech/abra/pkg/app"
|
||||||
appPkg "coopcloud.tech/abra/pkg/app"
|
appPkg "coopcloud.tech/abra/pkg/app"
|
||||||
"coopcloud.tech/abra/pkg/autocomplete"
|
"coopcloud.tech/abra/pkg/autocomplete"
|
||||||
"coopcloud.tech/abra/pkg/client"
|
"coopcloud.tech/abra/pkg/client"
|
||||||
@ -28,6 +29,8 @@ deploy <domain>" to do so.
|
|||||||
You can see what recipes are available (i.e. values for the <recipe> argument)
|
You can see what recipes are available (i.e. values for the <recipe> argument)
|
||||||
by running "abra recipe ls".
|
by running "abra recipe ls".
|
||||||
|
|
||||||
|
Recipe commit hashes are supported values for "[<version>]".
|
||||||
|
|
||||||
Passing the "--secrets/-S" flag will automatically generate secrets for your
|
Passing the "--secrets/-S" flag will automatically generate secrets for your
|
||||||
app and store them encrypted at rest on the chosen target server. These
|
app and store them encrypted at rest on the chosen target server. These
|
||||||
generated secrets are only visible at generation time, so please take care to
|
generated secrets are only visible at generation time, so please take care to
|
||||||
@ -66,6 +69,7 @@ var appNewCommand = cli.Command{
|
|||||||
Action: func(c *cli.Context) error {
|
Action: func(c *cli.Context) error {
|
||||||
recipe := internal.ValidateRecipe(c)
|
recipe := internal.ValidateRecipe(c)
|
||||||
|
|
||||||
|
var version string
|
||||||
if !internal.Chaos {
|
if !internal.Chaos {
|
||||||
if err := recipe.EnsureIsClean(); err != nil {
|
if err := recipe.EnsureIsClean(); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
@ -75,16 +79,13 @@ var appNewCommand = cli.Command{
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if c.Args().Get(1) == "" {
|
|
||||||
var version string
|
|
||||||
|
|
||||||
|
if c.Args().Get(1) == "" {
|
||||||
recipeVersions, err := recipe.GetRecipeVersions()
|
recipeVersions, err := recipe.GetRecipeVersions()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE(d1): determine whether recipe versions exist or not and check
|
|
||||||
// out the latest version or current HEAD
|
|
||||||
if len(recipeVersions) > 0 {
|
if len(recipeVersions) > 0 {
|
||||||
latest := recipeVersions[len(recipeVersions)-1]
|
latest := recipeVersions[len(recipeVersions)-1]
|
||||||
for tag := range latest {
|
for tag := range latest {
|
||||||
@ -100,7 +101,8 @@ var appNewCommand = cli.Command{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if _, err := recipe.EnsureVersion(c.Args().Get(1)); err != nil {
|
version = c.Args().Get(1)
|
||||||
|
if _, err := recipe.EnsureVersion(version); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -180,10 +182,10 @@ var appNewCommand = cli.Command{
|
|||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
headers := []string{"SERVER", "RECIPE", "DOMAIN"}
|
headers := []string{"SERVER", "DOMAIN", "RECIPE", "VERSION"}
|
||||||
table.Headers(headers...)
|
table.Headers(headers...)
|
||||||
|
|
||||||
table.Row(internal.NewAppServer, recipe.Name, internal.Domain)
|
table.Row(internal.NewAppServer, internal.Domain, recipe.Name, version)
|
||||||
|
|
||||||
log.Infof("new app '%s' created 🌞", recipe.Name)
|
log.Infof("new app '%s' created 🌞", recipe.Name)
|
||||||
|
|
||||||
@ -211,6 +213,16 @@ var appNewCommand = cli.Command{
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
app, err := app.Get(internal.Domain)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Debugf("choosing %s as version to save to env file", version)
|
||||||
|
if err := app.WriteRecipeVersion(version); err != nil {
|
||||||
|
log.Fatalf("writing new recipe version in env file: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user