main.go aktualisiert
Some checks failed
release-tag / release-image (push) Failing after 1m18s

This commit is contained in:
2025-06-18 09:22:32 +00:00
parent 03ed4cf7b1
commit 2b56863ef5

38
main.go
View File

@@ -616,20 +616,28 @@ func main() {
outDir = "/lists/"
}
listFile := flag.String("list", "", "optional text file with URLs or Name|URL pairs (overrides built-in map)")
listenAddr := flag.String("listen", ":8080", "HTTP listen address (e.g. :8080 or 127.0.0.1:8000)")
//listFile := flag.String("list", "", "optional text file with URLs or Name|URL pairs (overrides built-in map)")
listFile := os.Getenv("LIST")
if listFile == "" {
listFile = ""
}
//listenAddr := flag.String("listen", ":8080", "HTTP listen address (e.g. :8080 or 127.0.0.1:8000)")
listenAddr := os.Getenv("LISTEN")
if listenAddr == "" {
listenAddr = ":8080"
}
//listenPrefix := flag.String("prefix", "http://importer:8080", "HTTP prefix for url in /lists.json")
listenPrefix := os.Getenv("PREFIX")
if listenPrefix == "" {
listenPrefix = "http://flodimporter:8080"
}
flag.Parse()
//flag.Parse()
if *serveonly != "1" {
if err := os.MkdirAll(*outDir, 0o755); err != nil {
if serveonly != "1" {
if err := os.MkdirAll(outDir, 0o755); err != nil {
fatal("creating output dir", err)
}
targets, err := buildTargetList(*listFile)
targets, err := buildTargetList(listFile)
if err != nil {
fatal("building target list", err)
}
@@ -638,16 +646,16 @@ func main() {
return
}
fmt.Printf("Will fetch %d files, one every %v\n", len(targets), *delay)
fmt.Printf("Will fetch %d files, one every %v\n", len(targets), delay)
client := &http.Client{Timeout: 60 * time.Second}
ticker := time.NewTicker(*delay)
ticker := time.NewTicker(delay)
defer ticker.Stop()
for i, t := range targets {
if i > 0 {
<-ticker.C
}
if err := fetchAndSave(client, t, *outDir); err != nil {
if err := fetchAndSave(client, t, outDir); err != nil {
fmt.Fprintf(os.Stderr, "[ERROR] %s → %v\n", t.URL, err)
}
}
@@ -655,12 +663,12 @@ func main() {
}
// Static file handler.
fs := http.FileServer(http.Dir(*outDir))
fs := http.FileServer(http.Dir(outDir))
http.Handle("/lists/", http.StripPrefix("/lists/", fs))
// Custom index that shows a directory listing at root path.
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
data, err := buildIndexData(*outDir)
data, err := buildIndexData(outDir)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
@@ -674,21 +682,21 @@ func main() {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
enc := json.NewEncoder(w)
enc.SetIndent("", " ")
data, err := buildIndexData(*outDir)
data, err := buildIndexData(outDir)
if err != nil {
fmt.Println("Error Build-Index")
}
d := map[string]string{}
for _, b := range data.Files {
d[b.Name] = *listenPrefix + "/lists/" + b.Name
d[b.Name] = listenPrefix + "/lists/" + b.Name
}
if err := enc.Encode(d); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
})
log.Printf("HTTP server listening on %s, serving %s", *listenAddr, *outDir)
log.Fatal(http.ListenAndServe(*listenAddr, nil))
log.Printf("HTTP server listening on %s, serving %s", listenAddr, outDir)
log.Fatal(http.ListenAndServe(listenAddr, nil))
}
// ──────────────────────────────────────────────────────────────────────────────