/opt/splice-src/agent/apply_windows.go
//go:build windows
package main
import (
"fmt"
"os"
"os/exec"
"path/filepath"
)
func applyConfig(iface, config string) error {
dir := filepath.Join(os.Getenv("ProgramData"), "SpliceVPN")
if err := os.MkdirAll(dir, 0700); err != nil {
return err
}
path := filepath.Join(dir, iface+".conf")
if err := os.WriteFile(path, []byte(config), 0600); err != nil {
return err
}
exec.Command("wireguard.exe", "/uninstalltunnelservice", iface).Run()
if out, err := exec.Command("wireguard.exe", "/installtunnelservice", path).CombinedOutput(); err != nil {
return fmt.Errorf("installtunnelservice: %v: %s", err, out)
}
return nil
}