Files
VRCWT-OSC/internal/app/app.go
every_holiday cbd8911c25 Port
2026-06-22 22:29:10 +09:00

38 lines
664 B
Go

package app
import (
"fmt"
"os"
"os/signal"
"syscall"
"vrc_osc_go/internal/config"
"vrc_osc_go/internal/osc"
)
func Run(configPath string) error {
cfg, err := config.Load(configPath)
if err != nil {
return err
}
server := osc.NewServer(cfg.OSC.Host, cfg.OSC.Port)
server.Map("DiscordSend", func(_ string, args []osc.Value) error {
return fmt.Errorf("discord mute not implemented yet")
})
errCh := make(chan error, 1)
go func() { errCh <- server.Serve() }()
sigCh := make(chan os.Signal, 1)
signal.Notify(sigCh, os.Interrupt, syscall.SIGTERM)
select {
case err := <-errCh:
return err
case <-sigCh:
server.Close()
return nil
}
}