package main import ( "embed" "fmt" "net/http" "os" "time" "go.wit.com/log" ) // are sent via -ldflags at buildtime var VERSION string var BUILDTIME string //go:embed resources/* var resources embed.FS // var forge *forgepb.Forge var HOSTNAME string = "forge.wit.com" var LIBDIR string = "/var/lib/forged/" var FORGEDIR string = "/home/forge" func main() { if argv.Hostname != "" { HOSTNAME = argv.Hostname } // the default forged dir is /home/forge if os.Getenv("FORGE_GOSRC") == "" { os.Setenv("FORGE_GOSRC", "/home/forge") } if argv.Init != nil { doInit() okExit("") } if argv.List != nil { exit(doList()) okExit("") } // forge = forgepb.Init() if argv.Pull != nil { doPull() okExit("") } http.HandleFunc("/", okHandler) // go https() // use caddy instead p := fmt.Sprintf(":%d", argv.Port) log.Println(argv.Version(), "HOSTNAME set to:", HOSTNAME) log.Println("Running on port", "http://localhost"+p) log.Println("Running on port", "http://localhost"+p+"/ipv6.png") err := http.ListenAndServe(p, nil) if err != nil { log.Println("Error starting server:", err) } } func formatDuration(d time.Duration) string { seconds := int(d.Seconds()) % 60 minutes := int(d.Minutes()) % 60 hours := int(d.Hours()) % 24 days := int(d.Hours()) / 24 result := "" if days > 0 { result += fmt.Sprintf("%dd ", days) return result } if hours > 0 { result += fmt.Sprintf("%dh ", hours) return result } if minutes > 0 { result += fmt.Sprintf("%dm ", minutes) return result } if seconds > 0 { result += fmt.Sprintf("%ds", seconds) } return result }