diff --git a/install.go b/install.go index 13e4726..8cd7f22 100644 --- a/install.go +++ b/install.go @@ -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. diff --git a/main.go b/main.go index 62e94fb..371262e 100644 --- a/main.go +++ b/main.go @@ -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 }