Add --yes flag to skip prompts

This commit is contained in:
Kailash Nadh 2019-11-30 16:55:14 +05:30
parent 1dc26e2cb7
commit 427dd93d3b
2 changed files with 13 additions and 10 deletions

View File

@ -17,21 +17,23 @@ import (
// install runs the first time setup of creating and
// migrating the database and creating the super user.
func install(app *App, qMap goyesql.Queries) {
func install(app *App, qMap goyesql.Queries, prompt bool) {
fmt.Println("")
fmt.Println("** First time installation **")
fmt.Printf("** IMPORTANT: This will wipe existing listmonk tables and types in the DB '%s' **",
ko.String("db.database"))
fmt.Println("")
var ok string
fmt.Print("Continue (y/n)? ")
if _, err := fmt.Scanf("%s", &ok); err != nil {
logger.Fatalf("Error reading value from terminal: %v", err)
}
if strings.ToLower(ok) != "y" {
fmt.Println("Installation cancelled.")
return
if prompt {
var ok string
fmt.Print("Continue (y/n)? ")
if _, err := fmt.Scanf("%s", &ok); err != nil {
logger.Fatalf("Error reading value from terminal: %v", err)
}
if strings.ToLower(ok) != "y" {
fmt.Println("Installation cancelled.")
return
}
}
// Migrate the tables.

View File

@ -84,6 +84,7 @@ func init() {
f.Bool("install", false, "Run first time installation")
f.Bool("version", false, "Current version of the build")
f.Bool("new-config", false, "Generate sample config file")
f.Bool("yes", false, "Assume 'yes' to prompts, eg: during --install")
// Process flags.
if err := f.Parse(os.Args[1:]); err != nil {
@ -274,7 +275,7 @@ func main() {
// Run the first time installation.
if ko.Bool("install") {
install(app, qMap)
install(app, qMap, !ko.Bool("yes"))
return
}