mirror of
https://github.com/lwch/natpass.git
synced 2024-04-21 12:41:54 +00:00
36 lines
739 B
Go
36 lines
739 B
Go
package process
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/exec"
|
|
|
|
"github.com/jkstack/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, "-conf", confDir,
|
|
"-action", "vnc.worker",
|
|
"-name", name,
|
|
"-vport", fmt.Sprintf("%d", port))
|
|
err = cmd.Start()
|
|
if err != nil {
|
|
p.Close()
|
|
return nil, err
|
|
}
|
|
return &p, nil
|
|
}
|