mirror of
https://github.com/saymrwulf/puncture.git
synced 2026-06-06 00:03:25 +00:00
42 lines
893 B
Go
42 lines
893 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
|
|
"puncture-go/internal/server"
|
|
)
|
|
|
|
func main() {
|
|
host := flag.String("host", getenv("PUNCTURE_HOST", "0.0.0.0"), "bind host")
|
|
port := flag.Int("port", getenvInt("PUNCTURE_PORT", 9122), "bind port")
|
|
assetRoot := flag.String("asset-root", getenv("PUNCTURE_ASSET_ROOT", "./assets"), "asset root directory")
|
|
flag.Parse()
|
|
|
|
addr := server.ParseAddr(*host, *port)
|
|
log.Printf("starting puncture-go server on %s", addr)
|
|
if err := server.Run(addr, *assetRoot); err != nil {
|
|
log.Fatalf("server failed: %v", err)
|
|
}
|
|
}
|
|
|
|
func getenv(key, fallback string) string {
|
|
if v := os.Getenv(key); v != "" {
|
|
return v
|
|
}
|
|
return fallback
|
|
}
|
|
|
|
func getenvInt(key string, fallback int) int {
|
|
v := os.Getenv(key)
|
|
if v == "" {
|
|
return fallback
|
|
}
|
|
var parsed int
|
|
if _, err := fmt.Sscanf(v, "%d", &parsed); err != nil {
|
|
return fallback
|
|
}
|
|
return parsed
|
|
}
|