package main import ( "embed" "fmt" "net/http" "strings" "time" "go.wit.com/lib/protobuf/forgepb" "go.wit.com/log" ) // are sent via -ldflags at buildtime var VERSION string var BUILDTIME string //go:embed resources/* var resources embed.FS // var accessf, clientf *os.File var repoMap map[string]string var versionMap map[string]string var configfile []string var keysSorted []string var forge *forgepb.Forge var HOSTNAME string = "go.wit.com" var REPOMAP string = "/etc/gowebd/repomap" var FOOTER string = "/etc/gowebd/footer.html" var LIBDIR string = "/var/lib/gowebd/" func main() { if argv.RepoMap != "" { REPOMAP = argv.RepoMap } if argv.Hostname != "" { HOSTNAME = argv.Hostname } forge = forgepb.InitPB() versionMap = make(map[string]string) repoMap = make(map[string]string) /* all := forge.Repos.SortByGoPath() for all.Scan() { repo := all.Next() log.Info("forge protobuf has:", repo.GoPath) } */ // parse the repomap file readRepomap() // readVersionFile() var vtime string var version string for gopath, thing := range versionMap { if tmp, ok := versionMap[gopath]; ok { // log.Info("gopath", gopath, "tmp", tmp) parts := strings.Fields(tmp) if len(parts) == 2 { // log.Info("GOT HERE gopath", gopath, "tmp", tmp) version = parts[0] vtime = parts[1] } } log.Info("gopath", gopath, "info", thing, "dur", vtime, "version", version) } log.Println("found log =", versionMap["go.wit.com/log"]) http.HandleFunc("/", okHandler) // go https() // use caddy instead p := fmt.Sprintf(":%d", argv.Port) log.Println("HOSTNAME set to:", HOSTNAME) log.Println("Running on port", p) 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 }