43 lines
801 B
Go
43 lines
801 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
|
|
"vrc_osc_go/internal/app"
|
|
)
|
|
|
|
func main() {
|
|
var configPath string
|
|
var mode string
|
|
var noGUI bool
|
|
flag.StringVar(&configPath, "config", "config/config.toml", "path to config.toml")
|
|
flag.StringVar(&mode, "mode", "", "generate-json or extract-log")
|
|
flag.BoolVar(&noGUI, "no-gui", false, "do not launch the GUI companion")
|
|
flag.Parse()
|
|
|
|
if mode == "" && !noGUI {
|
|
launchGUI()
|
|
}
|
|
|
|
if err := app.Run(configPath, mode); err != nil {
|
|
log.SetOutput(os.Stderr)
|
|
log.Fatalf("vrc_osc_go: %v", err)
|
|
}
|
|
}
|
|
|
|
func launchGUI() {
|
|
exe, err := os.Executable()
|
|
if err != nil {
|
|
return
|
|
}
|
|
gui := filepath.Join(filepath.Dir(exe), "vrc_osc_gui.exe")
|
|
if _, err := os.Stat(gui); err != nil {
|
|
return
|
|
}
|
|
_ = exec.Command(gui).Start()
|
|
}
|