package main import ( "flag" "fmt" "log" "net/http" "os" "billing/internal/webdemo" ) func main() { listen := flag.String("listen", "127.0.0.1:8320", "HTTP listen address") inputName := flag.String("input", "", "demo input; supported value: fake") databasePath := flag.String("database", "", "optional SQLite data source for the fake demo") flag.Parse() if *inputName != "fake" { fmt.Fprintln(os.Stderr, "missing supported -input value: fake") os.Exit(2) } var input webdemo.Input = webdemo.NewFakeInput() if *databasePath != "" { databaseInput, err := webdemo.NewDatabaseInput(*databasePath) if err != nil { log.Fatal(err) } input = databaseInput defer databaseInput.Close() } server := &http.Server{Addr: *listen, Handler: webdemo.NewServer(input)} log.Printf("billing web demo: http://%s/ui", *listen) log.Fatal(server.ListenAndServe()) }