32 lines
636 B
Go
32 lines
636 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
"net/http"
|
|
"os"
|
|
|
|
"isosilo/internal/handlers"
|
|
)
|
|
|
|
func main() {
|
|
dir := flag.String("dir", ".", "Directory to serve")
|
|
addr := flag.String("addr", ":8080", "Address")
|
|
flag.Parse()
|
|
|
|
if info, err := os.Stat(*dir); err != nil || !info.IsDir() {
|
|
log.Fatalf("Invalid directory: %s", *dir)
|
|
}
|
|
|
|
mux := http.NewServeMux()
|
|
h := handlers.New(*dir)
|
|
|
|
mux.HandleFunc("/browse/", h.BrowseISO)
|
|
mux.HandleFunc("/file/", h.DownloadFile)
|
|
mux.HandleFunc("/raw/", h.RawFile)
|
|
mux.HandleFunc("/", h.ListISOs)
|
|
|
|
fmt.Printf("ISOSilo running at %s\n", *addr)
|
|
log.Fatal(http.ListenAndServe(*addr, mux))
|
|
}
|