package main import ( "embed" "flag" "io/fs" "log" "net/http" "git.atik.me/basicweb/app" ) //go:embed web var webFS embed.FS //go:embed labs var labsFS embed.FS func main() { webFS, _ := fs.Sub(webFS, "web") app := app.New(labsFS, webFS) http.HandleFunc("/", app.MainPageHandler) http.HandleFunc("/lab", app.LabPageHandler) http.HandleFunc("/coursework", app.CourseworkPageHandler) debug := flag.Bool("d", false, "Debug flag for using local FS instead of embed") flag.Parse() if *debug { http.Handle("/static/", http.FileServer(http.Dir("./web"))) http.Handle("/labs/", http.StripPrefix("/labs", http.FileServer(http.Dir("./labs")))) log.Println("Starting in debug mode...") } else { http.Handle("/static/", http.FileServer(http.FS(app.WebFS))) http.Handle("/labs/", http.FileServer(http.FS(app.LabsFS))) log.Println("Starting in normal mode...") } err := http.ListenAndServe(":80", nil) log.Fatal(err) }