WIP: another step further into app new command
This commit is contained in:
parent
ac6b8ab147
commit
f56ddef6c8
27
cli/app.go
27
cli/app.go
@ -3,6 +3,8 @@ package cli
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"path"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
@ -100,17 +102,38 @@ locally in a pass store (see passwordstore.org for more).
|
|||||||
if AppName == "" {
|
if AppName == "" {
|
||||||
prompt := &survey.Input{
|
prompt := &survey.Input{
|
||||||
Message: "Specify app name:",
|
Message: "Specify app name:",
|
||||||
|
Default: strings.ReplaceAll(Domain, ".", "_"),
|
||||||
}
|
}
|
||||||
if err := survey.AskOne(prompt, &AppName); err != nil {
|
if err := survey.AskOne(prompt, &AppName); err != nil {
|
||||||
logrus.Fatal(err)
|
logrus.Fatal(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert name and truncate or error out if needed
|
sanitisedAppName := strings.ReplaceAll(AppName, ".", "_")
|
||||||
|
if len(sanitisedAppName) > 45 {
|
||||||
|
logrus.Fatal(fmt.Errorf("'%s' cannot be longer than 45 characters", sanitisedAppName))
|
||||||
|
}
|
||||||
|
|
||||||
|
envSamplePath := path.Join(config.ABRA_DIR, "apps", appType, ".env.sample")
|
||||||
|
envSample, err := ioutil.ReadFile(envSamplePath)
|
||||||
|
if err != nil {
|
||||||
|
logrus.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
appEnvPath := path.Join(config.ABRA_DIR, "servers", Server, fmt.Sprintf("%s.env", sanitisedAppName))
|
||||||
|
err = ioutil.WriteFile(appEnvPath, envSample, 0755)
|
||||||
|
if err != nil {
|
||||||
|
logrus.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
// cp over env.sample and do some sed/replacing
|
|
||||||
// generate secrets if asked to do so
|
// generate secrets if asked to do so
|
||||||
|
if Secrets {
|
||||||
|
}
|
||||||
|
|
||||||
// save them in a pass store if asked to do so
|
// save them in a pass store if asked to do so
|
||||||
|
if Pass {
|
||||||
|
}
|
||||||
|
|
||||||
// Output some instructions on how to deploy this thing
|
// Output some instructions on how to deploy this thing
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user