Dragon-Knight/main.go

45 lines
942 B
Go

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)
}
}