package main import ( "flag" "fmt" "log" "os" "github.com/felt-app/felt/internal/store" ) func main() { dataDir := flag.String("data-dir", "./data", "Data directory for database and files") addr := flag.String("addr", ":8080", "HTTP listen address") devMode := flag.Bool("dev", false, "Enable development mode (applies dev seed data)") flag.Parse() log.SetFlags(log.LstdFlags | log.Lmsgprefix) log.SetPrefix("felt: ") log.Printf("starting (data-dir=%s, addr=%s, dev=%v)", *dataDir, *addr, *devMode) // Open database (runs migrations automatically) db, err := store.Open(*dataDir, *devMode) if err != nil { log.Fatalf("failed to open database: %v", err) } defer db.Close() // Check first-run setup status needsSetup, err := db.NeedsSetup() if err != nil { log.Fatalf("failed to check setup status: %v", err) } if needsSetup { log.Printf("no operators found - first-run setup required") log.Printf("POST /api/v1/setup to create first admin operator") } // Verify database is working var one int if err := db.QueryRow("SELECT 1").Scan(&one); err != nil { log.Fatalf("database health check failed: %v", err) } log.Printf("database ready") // Placeholder for HTTP server (will be implemented in Plan A) _ = addr fmt.Fprintf(os.Stderr, "felt: ready (database operational, HTTP server not yet implemented)\n") }