From 604cac8c0ab26a43d28341ff6f6e58e969eec925 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Sat, 14 Jun 2025 00:40:55 +0200 Subject: Implement the ‘watch’ package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 4d37cf2..71e652e 100644 --- a/main.go +++ b/main.go @@ -5,16 +5,15 @@ package main import ( "flag" - "log" "os" "path/filepath" "syscall" - "time" "git.thomasvoss.com/euro-cash.eu/src" "git.thomasvoss.com/euro-cash.eu/src/dbx" "git.thomasvoss.com/euro-cash.eu/src/email" . "git.thomasvoss.com/euro-cash.eu/src/try" + "git.thomasvoss.com/euro-cash.eu/src/watch" ) func main() { @@ -39,24 +38,14 @@ func main() { flag.Parse() if *debugp { - go watch() + path := Try2(os.Executable()) + go watch.File(path, func() { + Try(syscall.Exec(path, os.Args, os.Environ())) + }) } + tmplFS := Try2(os.OpenRoot("src/templates")).FS() dbx.Init(Try2(os.OpenRoot("src/dbx/sql")).FS()) - app.BuildTemplates(Try2(os.OpenRoot("src/templates")).FS()) + app.BuildTemplates(tmplFS, *debugp) app.Run(*port) } - -func watch() { - path := Try2(os.Executable()) - ostat := Try2(os.Stat(path)) - - for { - nstat := Try2(os.Stat(path)) - if nstat.ModTime() != ostat.ModTime() { - dbx.Close() - Try(syscall.Exec(path, os.Args, os.Environ())) - } - time.Sleep(1 * time.Second) - } -} -- cgit v1.2.3