5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-04 07:29:56 +08:00
wails/v3/internal/commands/watcher.go
Lea Anthony b4a61e11fa
Add devmode config to config.yml.
Remove devmode.config.yaml.
Update Watcher command.
Update templates.
2024-11-09 09:35:13 +11:00

52 lines
984 B
Go

package commands
import (
"github.com/atterpac/refresh/engine"
"github.com/wailsapp/wails/v3/internal/signal"
"gopkg.in/yaml.v3"
"os"
)
type WatcherOptions struct {
Config string `description:"The config file including path" default:"."`
}
func Watcher(options *WatcherOptions) error {
stopChan := make(chan struct{})
// Parse the config file
type devConfig struct {
Config engine.Config `yaml:"dev_mode"`
}
var devconfig devConfig
// Parse the config file
c, err := os.ReadFile(options.Config)
if err != nil {
return err
}
err = yaml.Unmarshal(c, &devconfig)
if err != nil {
return err
}
watcherEngine, err := engine.NewEngineFromConfig(devconfig.Config)
if err != nil {
return err
}
signalHandler := signal.NewSignalHandler(func() {
stopChan <- struct{}{}
})
signalHandler.ExitMessage = func(sig os.Signal) string {
return ""
}
signalHandler.Start()
err = watcherEngine.Start()
if err != nil {
return err
}
<-stopChan
return nil
}