Add cli flag for initializing tables instead of creating them at startup

master
Joca 2025-04-16 22:54:09 -03:00
parent 55908bb215
commit fef473199c
Signed by: jocadbz
GPG Key ID: B1836DCE2F50BDF7
1 changed files with 23 additions and 9 deletions

32
main.go
View File

@ -3,6 +3,7 @@ package main
import ( import (
"database/sql" "database/sql"
"encoding/json" "encoding/json"
"flag"
"fmt" "fmt"
"html/template" "html/template"
"log" "log"
@ -219,6 +220,11 @@ func ensureAdminUser(db *sql.DB, config *handlers.Config) error {
} }
func main() { func main() {
// Define command-line flag for initialization
initialize := flag.Bool("initialize", false, "Initialize database tables and admin user")
flag.BoolVar(initialize, "i", false, "Short for --initialize")
flag.Parse()
config, err := loadConfig("config/config.json") config, err := loadConfig("config/config.json")
if err != nil { if err != nil {
log.Fatal("Error loading config:", err) log.Fatal("Error loading config:", err)
@ -231,17 +237,25 @@ func main() {
} }
defer db.Close() defer db.Close()
// Create tables if they don't exist // Perform initialization if the flag is set
err = createTablesIfNotExist(db) if *initialize {
if err != nil { log.Println("Initializing database...")
log.Fatal("Error creating database tables:", err) err = createTablesIfNotExist(db)
if err != nil {
log.Fatal("Error creating database tables:", err)
}
err = ensureAdminUser(db, config)
if err != nil {
log.Fatal("Error ensuring admin user:", err)
}
log.Println("Initialization completed successfully. Exiting.")
return
} }
// Ensure admin user exists // Normal startup (without automatic table creation)
err = ensureAdminUser(db, config) log.Println("Starting ThreadR server...")
if err != nil {
log.Fatal("Error ensuring admin user:", err)
}
dir, err := os.Getwd() dir, err := os.Getwd()
if err != nil { if err != nil {