34 lines
916 B
Go
34 lines
916 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
"net/http"
|
|
"os"
|
|
)
|
|
|
|
var SubmissionDir string
|
|
|
|
func main() {
|
|
var bind = flag.String("bind", "0.0.0.0:8080", "Bind port/socket")
|
|
var prefix = flag.String("prefix", "", "Request path prefix to strip (from proxy)")
|
|
flag.StringVar(&SubmissionDir, "submission", "./submissions/", "Base directory where save submissions")
|
|
flag.Parse()
|
|
|
|
log.Println("Creating submission directory...")
|
|
if _, err := os.Stat(SubmissionDir); os.IsNotExist(err) {
|
|
if err := os.MkdirAll(SubmissionDir, 0777); err != nil {
|
|
log.Fatal("Unable to create submission directory: ", err)
|
|
}
|
|
}
|
|
|
|
log.Println("Registering handlers...")
|
|
http.Handle(fmt.Sprintf("%s/", *prefix), http.StripPrefix(*prefix, SubmissionHandler{}))
|
|
|
|
log.Println(fmt.Sprintf("Ready, listening on %s", *bind))
|
|
if err := http.ListenAndServe(*bind, nil); err != nil {
|
|
log.Fatal("Unable to listen and serve: ", err)
|
|
}
|
|
}
|