44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
"net/http"
|
|
"path/filepath"
|
|
)
|
|
|
|
func main() {
|
|
var staticDir string
|
|
var studentsFile string
|
|
|
|
var bind = flag.String("bind", ":8081", "Bind port/socket")
|
|
flag.StringVar(&studentsFile, "students", "./students.csv", "Path to a CSV file containing students list")
|
|
flag.StringVar(&staticDir, "static", "./static/", "Directory containing static files")
|
|
flag.StringVar(&ARPTable, "arp", ARPTable, "Path to ARP table")
|
|
//var tftpdLogs = flag.String("tftpd", "/var/logs/tftpd.log", "Path to TFTPd logs")
|
|
flag.Parse()
|
|
|
|
var err error
|
|
|
|
// Sanitize options
|
|
log.Println("Checking paths...")
|
|
if staticDir, err = filepath.Abs(staticDir); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
var students []Student
|
|
students, err = readStudentsList(studentsFile)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
log.Println("Registering handlers...")
|
|
mux := http.NewServeMux()
|
|
mux.HandleFunc("/", Index)
|
|
mux.Handle("/login", loginChecker{students})
|
|
http.HandleFunc("/", mux.ServeHTTP)
|
|
|
|
log.Println("Ready, listening on port", *bind)
|
|
http.ListenAndServe(*bind, nil)
|
|
}
|