5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-05 07:00:39 +08:00
wails/v3/internal/commands/watcher.go
Lea Anthony e5c14d24ae
Initial implementation of dev mode.
Huge thanks to @atterpac!
2024-01-19 21:34:49 +11:00

31 lines
654 B
Go

package commands
import (
"github.com/atterpac/refresh/engine"
"github.com/wailsapp/wails/v3/internal/signal"
"os"
)
type WatcherOptions struct {
Config string `description:"The config file including path" default:"."`
}
func Watcher(options *WatcherOptions) error {
stopChan := make(chan struct{})
watcherEngine := engine.NewEngineFromTOML(options.Config)
signalHandler := signal.NewSignalHandler(func() {
watcherEngine.Stop()
stopChan <- struct{}{}
})
signalHandler.ExitMessage = func(sig os.Signal) string {
return ""
}
signalHandler.Start()
err := watcherEngine.Start()
if err != nil {
return err
}
<-stopChan
return nil
}