diff --git a/go.mod b/go.mod deleted file mode 100644 index 7f21d4b..0000000 --- a/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module git.nemunai.re/shemu - -go 1.10 diff --git a/main.go b/main.go index 36a3542..3796ce8 100644 --- a/main.go +++ b/main.go @@ -30,10 +30,9 @@ func Serve(w http.ResponseWriter, r *http.Request) { ` + title + ` - + @@ -111,23 +80,13 @@ function disp_std(rendus, login) { @@ -177,7 +136,7 @@ func genStudent(login string) map[string]*Submission { ret[dir.Name()] = new(Submission) ret[dir.Name()].Date = fi.ModTime() if lnk, err := os.Readlink(p); err == nil { - ret[dir.Name()].Hash = strings.TrimPrefix(lnk, login+".") + ret[dir.Name()].Hash = strings.TrimPrefix(lnk, login + ".") } } else { ret[dir.Name()] = nil @@ -207,22 +166,11 @@ func ServeJSONStudent(w http.ResponseWriter, r *http.Request) { } } -type arrayFlags []string - -func (i *arrayFlags) String() string { - return fmt.Sprintf("%v", *i) -} - -func (i *arrayFlags) Set(value string) error { - *i = append(*i, value) - return nil -} - func main() { - var studentsFiles arrayFlags + var studentsFile string var bind = flag.String("bind", "0.0.0.0:8081", "Bind port/socket") - flag.Var(&studentsFiles, "students", "Path to a CSV file containing in the third column the name of the directory to look for (can be repeated multiple times)") + flag.StringVar(&studentsFile, "students", "./students.csv", "Path to a CSV file containing in the third column the name of the directory to look for") flag.StringVar(&rendusDir, "path", "./rendu/", "Path to the submissions directory (each subdirectory is a project)") flag.StringVar(&title, "title", "Rendus VIRLI", "Title of the page") flag.Parse() @@ -247,21 +195,14 @@ func main() { // Read and parse students list log.Println("Reading students files...") - for _, studentsFile := range studentsFiles { - log.Println("Reading", studentsFile, "...") - if studentsFile, err = filepath.Abs(studentsFile); err != nil { + if studentsFile, err = filepath.Abs(studentsFile); err != nil { + log.Fatal(err) + } else if fi, err := os.Open(studentsFile); err != nil { + log.Fatal(err) + } else { + r := csv.NewReader(bufio.NewReader(fi)) + if students, err = r.ReadAll(); err != nil { log.Fatal(err) - } else if fi, err := os.Open(studentsFile); err != nil { - log.Fatal(err) - } else { - var nstudents [][]string - - r := csv.NewReader(bufio.NewReader(fi)) - if nstudents, err = r.ReadAll(); err != nil { - log.Fatal(err) - } - - students = append(students, nstudents...) } } log.Println(len(students), "students loaded.") @@ -270,7 +211,7 @@ func main() { http.HandleFunc("/", Serve) http.HandleFunc("/rendus.json", ServeJSON) for _, student := range students { - http.HandleFunc("/"+student[2]+".json", ServeJSONStudent) + http.HandleFunc("/" + student[2] + ".json", ServeJSONStudent) } log.Println(fmt.Sprintf("Ready, listening on %s", *bind)) if err := http.ListenAndServe(*bind, nil); err != nil {