Compare commits

...

4 commits
v1 ... main

Author SHA1 Message Date
Magnus Åhall
40d5297042 And read CSS from embedded FS. Bumped to v5 2025-11-12 07:57:57 +01:00
Magnus Åhall
8bde331200 Show HTTP server error, bumped to v4 2025-11-12 07:56:22 +01:00
Magnus Åhall
9dafb5383d Use embedded index.html, bumped to v3 2025-11-12 07:55:03 +01:00
Magnus Åhall
2098da3417 Implemented configurable debugging port, bumped to v2 2025-11-10 10:18:34 +01:00

33
main.go
View file

@ -7,6 +7,7 @@ import (
"embed"
"encoding/json"
"flag"
"fmt"
"html/template"
"io"
"log"
@ -16,12 +17,12 @@ import (
"strings"
)
const VERSION = "v1"
const VERSION = "v5"
var (
flagVerbose bool
flagWsURL string
flagWatch string
flagVersion bool
flagDebuggingPort int
//go:embed static
fs embed.FS
@ -29,10 +30,15 @@ var (
func main() {
flag.BoolVar(&flagVerbose, "v", false, "verbose")
flag.StringVar(&flagWsURL, "ws", "ws://127.0.0.1:9222", "devtools url")
flag.StringVar(&flagWatch, "watch", "", "Files to watch")
flag.BoolVar(&flagVersion, "version", false, "Print version and exit")
flag.IntVar(&flagDebuggingPort, "port", 9222, "Chrome debugging port")
flag.Parse()
if flagVersion {
fmt.Println(VERSION)
return
}
http.HandleFunc("/", pageIndex)
http.HandleFunc("/css/main.css", pageCSS)
@ -43,7 +49,11 @@ func main() {
http.HandleFunc("/sites", actionSites)
log.Println("Listen on [::]:5123")
http.ListenAndServe("[::]:5123", nil)
err := http.ListenAndServe("[::]:5123", nil)
if err != nil {
log.Println(err)
os.Exit(1)
}
}
func replaceTilde(str string) string { // {{{
@ -63,10 +73,7 @@ func replaceTilde(str string) string {// {{{
func pageIndex(w http.ResponseWriter, r *http.Request) { // {{{
var tmpl *template.Template
var err error
if false {
tmpl, err = template.ParseFS(fs, "static/html/index.html")
}
tmpl, err = template.ParseFiles("static/html/index.html")
if err != nil {
w.Write([]byte(err.Error()))
return
@ -81,8 +88,7 @@ func pageIndex(w http.ResponseWriter, r *http.Request) { // {{{
func pageCSS(w http.ResponseWriter, r *http.Request) { // {{{
w.Header().Add("Content-Type", "text/css")
//data, err := fs.ReadFile("static/css/main.css")
data, err := os.ReadFile("static/css/main.css")
data, err := fs.ReadFile("static/css/main.css")
if err != nil {
w.Write([]byte(err.Error()))
return
@ -103,7 +109,7 @@ func actionSites(w http.ResponseWriter, r *http.Request) { // {{{
func actionBrowserStart(w http.ResponseWriter, r *http.Request) { // {{{
body, _ := io.ReadAll(r.Body)
userDataDir := replaceTilde(string(body))
browser := exec.Command("google-chrome", "--user-data-dir="+string(userDataDir), "--remote-debugging-port=9222")
browser := exec.Command("google-chrome", "--user-data-dir="+string(userDataDir), fmt.Sprintf("--remote-debugging-port=%d", flagDebuggingPort))
err := browser.Start()
if err != nil {
log.Println(err)
@ -133,7 +139,8 @@ func actionStart(w http.ResponseWriter, r *http.Request) { // {{{
var site Site
expandedWatch := replaceTilde(req.Watch)
site, err = NewSite(flagWsURL, req.URL, expandedWatch)
wsURL := fmt.Sprintf("ws://127.0.0.1:%d", flagDebuggingPort)
site, err = NewSite(wsURL, req.URL, expandedWatch)
if err != nil {
log.Println(err)
}