initialise repo
[debian/orchestra.git] / src / conductor / http.go
1 /* http.go
2  *
3  * HTTP status server.
4 */
5
6 package main
7
8 import (
9         "fmt"
10         "http"
11         "orchestra"
12 )
13
14 /* default ports are all in server.go */
15
16 func StartHTTP() {
17         go httpServer()
18 }
19
20 func returnStatus(w http.ResponseWriter, r *http.Request) {
21         tasks, players := DispatchStatus()
22         fmt.Fprintf(w, "<p>Tasks Waiting: %d</p>\n", tasks)
23         fmt.Fprintf(w, "<p>Players Idle:</p>\n<ul>\n")
24         var i int
25         for i = 0; i < len(players); i++ {
26                 fmt.Fprintf(w, "<li>%s</li>\n", players[i])
27         }
28         if (i == 0) {
29                 fmt.Fprintf(w, "<li>none</li>")
30         }
31         fmt.Fprintf(w, "</ul>")
32 }
33
34 func httpServer() {
35         laddr := fmt.Sprintf(":%d", orchestra.DefaultHTTPPort)
36         http.HandleFunc("/", returnStatus)
37         http.ListenAndServe(laddr, nil)
38 }
39