OLD | NEW |
1 package main | 1 package main |
2 | 2 |
3 import ( | 3 import ( |
4 "bytes" | 4 "bytes" |
5 "crypto/md5" | 5 "crypto/md5" |
6 "database/sql" | 6 "database/sql" |
7 "encoding/base64" | 7 "encoding/base64" |
8 "encoding/json" | 8 "encoding/json" |
9 "flag" | 9 "flag" |
10 "fmt" | 10 "fmt" |
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 if _, err := db.Exec("INSERT INTO workspacetry (name, hash) VALU
ES(?, ?)", workspaceName, hash); err != nil { | 332 if _, err := db.Exec("INSERT INTO workspacetry (name, hash) VALU
ES(?, ?)", workspaceName, hash); err != nil { |
333 log.Printf("ERROR: Failed to insert into workspacetry ta
ble: %q\n", err) | 333 log.Printf("ERROR: Failed to insert into workspacetry ta
ble: %q\n", err) |
334 } | 334 } |
335 } | 335 } |
336 } | 336 } |
337 | 337 |
338 func cssHandler(w http.ResponseWriter, r *http.Request) { | 338 func cssHandler(w http.ResponseWriter, r *http.Request) { |
339 http.ServeFile(w, r, "css/webtry.css") | 339 http.ServeFile(w, r, "css/webtry.css") |
340 } | 340 } |
341 | 341 |
342 func jsHandler(w http.ResponseWriter, r *http.Request) { | |
343 http.ServeFile(w, r, "js/run.js") | |
344 } | |
345 | |
346 // imageHandler serves up the PNG of a specific try. | 342 // imageHandler serves up the PNG of a specific try. |
347 func imageHandler(w http.ResponseWriter, r *http.Request) { | 343 func imageHandler(w http.ResponseWriter, r *http.Request) { |
348 log.Printf("Image Handler: %q\n", r.URL.Path) | 344 log.Printf("Image Handler: %q\n", r.URL.Path) |
349 if r.Method != "GET" { | 345 if r.Method != "GET" { |
350 http.NotFound(w, r) | 346 http.NotFound(w, r) |
351 return | 347 return |
352 } | 348 } |
353 match := imageLink.FindStringSubmatch(r.URL.Path) | 349 match := imageLink.FindStringSubmatch(r.URL.Path) |
354 if len(match) != 2 { | 350 if len(match) != 2 { |
355 http.NotFound(w, r) | 351 http.NotFound(w, r) |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
661 } | 657 } |
662 | 658 |
663 func main() { | 659 func main() { |
664 flag.Parse() | 660 flag.Parse() |
665 http.HandleFunc("/i/", imageHandler) | 661 http.HandleFunc("/i/", imageHandler) |
666 http.HandleFunc("/w/", workspaceHandler) | 662 http.HandleFunc("/w/", workspaceHandler) |
667 http.HandleFunc("/recent/", recentHandler) | 663 http.HandleFunc("/recent/", recentHandler) |
668 http.HandleFunc("/iframe/", iframeHandler) | 664 http.HandleFunc("/iframe/", iframeHandler) |
669 http.HandleFunc("/json/", tryInfoHandler) | 665 http.HandleFunc("/json/", tryInfoHandler) |
670 http.HandleFunc("/css/", cssHandler) | 666 http.HandleFunc("/css/", cssHandler) |
671 » http.HandleFunc("/js/", jsHandler) | 667 » http.Handle("/js/", http.FileServer(http.Dir("./"))) |
672 // TODO Break out /c/ as it's own handler. | 668 // TODO Break out /c/ as it's own handler. |
673 http.HandleFunc("/", mainHandler) | 669 http.HandleFunc("/", mainHandler) |
674 log.Fatal(http.ListenAndServe(*port, nil)) | 670 log.Fatal(http.ListenAndServe(*port, nil)) |
675 } | 671 } |
OLD | NEW |