package main import ( "flag" "fmt" "log" "os" "dk/internal/install" "dk/internal/server" ) func main() { var port string flag.StringVar(&port, "p", "3000", "Port to run server on") if len(os.Args) < 2 { startServer(port) return } switch os.Args[1] { case "install": if err := install.Run(); err != nil { log.Fatalf("Installation failed: %v", err) } case "serve": flag.CommandLine.Parse(os.Args[2:]) startServer(port) default: fmt.Fprintf(os.Stderr, "Unknown command: %s\n", os.Args[1]) fmt.Fprintln(os.Stderr, "Available commands:") fmt.Fprintln(os.Stderr, " install - Install the database") fmt.Fprintln(os.Stderr, " serve - Start the server") fmt.Fprintln(os.Stderr, " (no command) - Start the server") os.Exit(1) } } func startServer(port string) { fmt.Println("Starting Dragon Knight server...") if err := server.Start(port); err != nil { log.Fatalf("Server failed: %v", err) } }