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) } }