server/admin/main.go

49 lines
1.2 KiB
Go

package main
import (
"flag"
"fmt"
"log"
"net/http"
"os"
)
var SubmissionDir string
var BaseURL string
func main() {
var bind = flag.String("bind", "0.0.0.0:8081", "Bind port/socket")
var dbfile = flag.String("db", "fic.db", "Path to the DB")
flag.StringVar(&BaseURL, "baseurl", "http://fic.srs.epita.fr/", "URL prepended to each URL")
flag.StringVar(&SubmissionDir, "submission", "./submissions/", "Base directory where save submissions")
flag.Parse()
log.Println("Opening database...")
if err := DBInit(*dbfile); err != nil {
log.Fatal("Cannot open the database: ", err)
os.Exit(1)
}
defer DBClose()
log.Println("Creating database...")
if err := DBCreate(); err != nil {
log.Fatal("Cannot create database: ", err)
os.Exit(1)
}
log.Println("Registering handlers...")
mux := http.NewServeMux()
mux.Handle("/api/", http.StripPrefix("/api", ApiHandler()))
mux.HandleFunc("/teams", StaticRouting)
mux.HandleFunc("/themes", StaticRouting)
mux.Handle("/", http.FileServer(http.Dir("./static/")))
http.HandleFunc("/", mux.ServeHTTP)
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)
}
}