1
0
mirror of https://github.com/strongdm/comply synced 2024-11-25 00:54:54 +00:00

Serve now provides an HTTP server, listening on port 4000 by default. Listen port can be set with the --port flag to the serve command. Websocket refresh remains intact.

This commit is contained in:
Justin McCarthy 2019-03-16 00:02:50 -07:00
parent 0c9dbd736b
commit ef32942dad
No known key found for this signature in database
GPG Key ID: 900437410E142A48
4 changed files with 29 additions and 6 deletions

View File

@ -7,8 +7,15 @@ import (
) )
var serveCommand = cli.Command{ var serveCommand = cli.Command{
Name: "serve", Name: "serve",
Usage: "live updating version of the build command", Usage: "live updating version of the build command",
Flags: []cli.Flag{
cli.IntFlag{
Name: "port",
Value: 4000,
Destination: &render.ServePort,
},
},
Action: serveAction, Action: serveAction,
Before: beforeAll(pandocMustExist, cleanContainers), Before: beforeAll(pandocMustExist, cleanContainers),
} }

View File

@ -15,7 +15,10 @@ import (
const websocketReloader = `<script> const websocketReloader = `<script>
(function(){ (function(){
var ws = new WebSocket("ws://localhost:5122/ws") var ws = new WebSocket("ws://localhost:%d/ws")
if (location.host != "") {
ws = new WebSocket("ws://"+location.host+"/ws")
}
var connected = false var connected = false
ws.onopen = function(e) { ws.onopen = function(e) {
connected = true connected = true
@ -74,7 +77,7 @@ func html(output string, live bool, errCh chan error, wg *sync.WaitGroup) {
} }
if live { if live {
w.Write([]byte(websocketReloader)) w.Write([]byte(fmt.Sprintf(websocketReloader, ServePort)))
} }
w.Close() w.Close()
} }
@ -82,7 +85,7 @@ func html(output string, live bool, errCh chan error, wg *sync.WaitGroup) {
if live { if live {
if !opened { if !opened {
opened = true opened = true
open.Run(filepath.Join(".", "output", "index.html")) open.Run(fmt.Sprintf("http://127.0.0.1:%d/", ServePort))
} }
} else { } else {
wg.Done() wg.Done()

View File

@ -1,8 +1,10 @@
package render package render
import ( import (
"fmt"
"net/http" "net/http"
"os" "os"
"path/filepath"
"sync" "sync"
"time" "time"
@ -11,6 +13,8 @@ import (
"github.com/yosssi/ace" "github.com/yosssi/ace"
) )
var ServePort int
var upgrader = websocket.Upgrader{ var upgrader = websocket.Upgrader{
ReadBufferSize: 1024, ReadBufferSize: 1024,
WriteBufferSize: 1024, WriteBufferSize: 1024,
@ -87,6 +91,16 @@ func Build(output string, live bool) error {
if live { if live {
watch(errCh) watch(errCh)
go func() {
http.Handle("/", http.FileServer(http.Dir(filepath.Join(".", "output"))))
err := http.ListenAndServe(fmt.Sprintf("127.0.0.1:%d", ServePort), nil)
if err != nil {
panic(err)
}
}()
fmt.Printf("Serving content of output/ at http://127.0.0.1:%d (ctrl-c to quit)\n", ServePort)
} }
// PDF // PDF
wg.Add(1) wg.Add(1)

View File

@ -45,7 +45,6 @@ func watch(errCh chan error) {
} }
http.HandleFunc("/ws", serveWs) http.HandleFunc("/ws", serveWs)
go http.ListenAndServe("127.0.0.1:5122", nil)
return return
} }