1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
package main
import (
"context"
"flag"
"fmt"
"log"
"net/http"
"os"
"time"
)
var (
fl_url = flag.String("url", "https://bugs.gnunet.org/api/rest/issues", "URL to the issues")
fl_token = flag.String("token", os.Getenv("MANTIS_API_TOKEN"), "API-Token")
fl_port = flag.String("port", ":8080", "[ip]:port to serve")
fl_num = flag.Int("num", 100, "number of issues to retrieve at once")
fl_min = flag.String("min", "0.9.3", "minimum version for data")
)
func main() {
flag.Parse()
fmt.Println("starting")
var ctx = context.Background()
var data = NewData(ctx, *fl_url, *fl_token, *fl_num)
data.filterId = 230
data.projectId = 23
data.minimumVersion = *fl_min
data.update()
go func() {
var ticker = time.NewTicker(15 * time.Second)
for range ticker.C {
select {
case <-ctx.Done():
return
default:
fmt.Println("updating data")
data.update()
}
}
}()
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
data.printTemplate(w, "table.tmpl")
})
http.HandleFunc("/list", func(w http.ResponseWriter, r *http.Request) {
data.printTemplate(w, "list.tmpl")
})
http.HandleFunc("/json", func(w http.ResponseWriter, r *http.Request) {
data.printJSON(w)
})
fmt.Println("ready to serve")
log.Fatal(http.ListenAndServe(*fl_port, nil))
}
|