51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
"net/http"
|
|
"os"
|
|
|
|
"srs.epita.fr/fic-server/libfic"
|
|
)
|
|
|
|
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 := fic.DBInit(*dbfile); err != nil {
|
|
log.Fatal("Cannot open the database: ", err)
|
|
os.Exit(1)
|
|
|
|
}
|
|
defer fic.DBClose()
|
|
|
|
log.Println("Creating database...")
|
|
if err := fic.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)
|
|
}
|
|
}
|