WIP spec out app new command
This commit is contained in:
parent
bf7d437571
commit
de3ea8188e
29
cli/app.go
29
cli/app.go
@ -20,14 +20,15 @@ import (
|
|||||||
|
|
||||||
var appNewCommand = &cli.Command{
|
var appNewCommand = &cli.Command{
|
||||||
Name: "new",
|
Name: "new",
|
||||||
Usage: "Create a new app",
|
Usage: "Create a new app of <type>",
|
||||||
Description: `
|
Description: `
|
||||||
This command takes a recipe and uses it to cook up a new app. This app
|
This command takes a recipe and uses it to cook up a new app. This app
|
||||||
configuration is stored in your ~/.abra directory under the appropriate server.
|
configuration is stored in your ~/.abra directory under the appropriate server.
|
||||||
This command does not deploy your app for you. You will need to run "abra app
|
This command does not deploy your app for you. You will need to run "abra app
|
||||||
deploy <app>" to do so.
|
deploy <app>" to do so.
|
||||||
|
|
||||||
You can see what apps can be created by running "abra recipe ls".
|
You can see what apps can be created (i.e. values for the <type> argument) by
|
||||||
|
running "abra recipe ls".
|
||||||
|
|
||||||
Passing the "--secrets" flag will automatically generate secrets for your app
|
Passing the "--secrets" flag will automatically generate secrets for your app
|
||||||
and store them encrypted at rest on the chosen target server. These generated
|
and store them encrypted at rest on the chosen target server. These generated
|
||||||
@ -42,6 +43,30 @@ locally in a pass store (see passwordstore.org for more).
|
|||||||
PassFlag,
|
PassFlag,
|
||||||
SecretsFlag,
|
SecretsFlag,
|
||||||
},
|
},
|
||||||
|
ArgsUsage: "<type>",
|
||||||
|
Action: func(c *cli.Context) error {
|
||||||
|
appType := c.Args().First()
|
||||||
|
if appType == "" {
|
||||||
|
cli.ShowSubcommandHelp(c)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO:
|
||||||
|
// ensure ABRA_DIR exists
|
||||||
|
// get the apps_json
|
||||||
|
// get the servers list
|
||||||
|
// select latest version of recipe from apps_json
|
||||||
|
// prompt to choose server if not provided
|
||||||
|
// prompt to choose domain name if not provided
|
||||||
|
// prompt to choose app name if not provided
|
||||||
|
// convert name and truncate or error out if needed
|
||||||
|
// cp over env.sample and do some sed/replacing
|
||||||
|
// generate secrets if asked to do so
|
||||||
|
// save them in a pass store if asked to do so
|
||||||
|
// Output some instructions on how to deploy this thing
|
||||||
|
|
||||||
|
return nil
|
||||||
|
},
|
||||||
}
|
}
|
||||||
var appDeployCommand = &cli.Command{
|
var appDeployCommand = &cli.Command{
|
||||||
Name: "deploy",
|
Name: "deploy",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user