Compare commits

..

No commits in common. "main" and "v1" have entirely different histories.
main ... v1

41
main.go
View file

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