This commit is contained in:
38
main.go
38
main.go
@@ -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))
|
||||
}
|
||||
|
||||
// ──────────────────────────────────────────────────────────────────────────────
|
||||
|
Reference in New Issue
Block a user