wip: ready for initial test

This commit is contained in:
2023-12-07 04:47:00 +00:00
parent bd4ba67ad2
commit 2971f5c709
4 changed files with 97 additions and 14 deletions

60
cmd/wingmate/bridge.go Normal file
View File

@@ -0,0 +1,60 @@
package main
import (
"time"
"gitea.suyono.dev/suyono/wingmate/config"
wminit "gitea.suyono.dev/suyono/wingmate/init"
)
type wPath struct {
path string
}
func (p wPath) Path() string {
return p.path
}
type wConfig struct {
services []wminit.Path
cron []wminit.Cron
}
func (c wConfig) Services() []wminit.Path {
return c.services
}
func (c wConfig) Cron() []wminit.Cron {
return c.cron
}
type wCron struct {
iCron *config.Cron
}
func (c wCron) TimeToRun(now time.Time) bool {
return c.iCron.TimeToRun(now)
}
func (c wCron) Command() wminit.Path {
return wPath{
path: c.iCron.Command(),
}
}
func convert(cfg *config.Config) wConfig {
retval := wConfig{
services: make([]wminit.Path, 0, len(cfg.ServicePaths)),
cron: make([]wminit.Cron, 0, len(cfg.Cron)),
}
for _, s := range cfg.ServicePaths {
retval.services = append(retval.services, wPath{path: s})
}
for _, c := range cfg.Cron {
retval.cron = append(retval.cron, wCron{iCron: c})
}
return retval
}

View File

@@ -1,5 +1,24 @@
package main
func main() {
import (
"os"
"gitea.suyono.dev/suyono/wingmate"
"gitea.suyono.dev/suyono/wingmate/config"
wminit "gitea.suyono.dev/suyono/wingmate/init"
)
func main() {
var (
err error
cfg *config.Config
)
_ = wingmate.NewLog(os.Stderr)
if cfg, err = config.Read(); err != nil {
wingmate.Log().Error().Msgf("failed to read config %#v", err)
}
initCfg := convert(cfg)
wminit.NewInit(initCfg).Start()
}