Files
2023-01-31 15:39:43 +08:00

38 lines
758 B
Go

//go:build !windows
// +build !windows
package process
import (
"fmt"
"os"
"os/exec"
"github.com/lwch/natpass/code/client/rule/vnc/vncnetwork"
)
// CreateWorker create worker process
func CreateWorker(name, confDir string, showCursor bool) (*Process, error) {
dir, err := os.Executable()
if err != nil {
return nil, err
}
var p Process
p.chWrite = make(chan *vncnetwork.VncMsg)
p.chImage = make(chan *vncnetwork.ImageData)
p.chClipboard = make(chan *vncnetwork.ClipboardData)
port, err := p.listenAndServe()
if err != nil {
return nil, err
}
cmd := exec.Command(dir, "vnc", "--conf", confDir,
"--name", name,
"--port", fmt.Sprintf("%d", port))
err = cmd.Start()
if err != nil {
p.Close()
return nil, err
}
return &p, nil
}