mirror of
https://github.com/strongdm/comply
synced 2024-11-24 16:44:53 +00:00
52 lines
821 B
Go
52 lines
821 B
Go
package render
|
|
|
|
import (
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/gohugoio/hugo/watcher"
|
|
)
|
|
|
|
func watch(errCh chan error) {
|
|
// TODO: study about the poll duration
|
|
b, err := watcher.New(300 * time.Millisecond, 0, false)
|
|
if err != nil {
|
|
errCh <- err
|
|
return
|
|
}
|
|
b.Add("./templates/")
|
|
b.Add("./narratives/")
|
|
b.Add("./policies/")
|
|
b.Add("./procedures/")
|
|
|
|
b.Add("./.comply/")
|
|
b.Add("./.comply/cache")
|
|
b.Add("./.comply/cache/tickets")
|
|
|
|
go func() {
|
|
for {
|
|
select {
|
|
case e := <-b.Errors():
|
|
errCh <- e
|
|
case <-b.Events:
|
|
broadcast()
|
|
}
|
|
}
|
|
}()
|
|
|
|
serveWs := func(w http.ResponseWriter, r *http.Request) {
|
|
ws, err := upgrader.Upgrade(w, r, nil)
|
|
if err != nil {
|
|
errCh <- err
|
|
return
|
|
}
|
|
<-subscribe()
|
|
time.Sleep(500 * time.Millisecond)
|
|
ws.Close()
|
|
}
|
|
|
|
http.HandleFunc("/ws", serveWs)
|
|
|
|
return
|
|
}
|