mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-10-21 14:29:33 +08:00
35 lines
666 B
Go
35 lines
666 B
Go
//go:build windows
|
|
|
|
package openvpn
|
|
|
|
import (
|
|
"embed"
|
|
"io/ioutil"
|
|
"os"
|
|
"os/exec"
|
|
)
|
|
|
|
//go:embed exe/tap-windows-9.21.2.exe
|
|
var fs embed.FS
|
|
|
|
// driver download from https://build.openvpn.net/downloads/releases/
|
|
func Install() error {
|
|
bytes, err := fs.ReadFile("exe/tap-windows-9.21.2.exe")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
tempFile, err := ioutil.TempFile("", "*.exe")
|
|
defer func() { _ = os.Remove(tempFile.Name()) }()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if _, err = tempFile.Write(bytes); err != nil {
|
|
return err
|
|
}
|
|
_ = tempFile.Sync()
|
|
_ = tempFile.Close()
|
|
_ = os.Chmod(tempFile.Name(), 0700)
|
|
cmd := exec.Command(tempFile.Name(), "/S")
|
|
return cmd.Run()
|
|
}
|