add windows support (#193)

* add windows support

* build for win

* fix win build
This commit is contained in:
Boshi Lian 2023-08-16 17:35:03 -07:00 • committed by GitHub
parent 2482fd67c7
commit d2b002000e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 74 additions and 16 deletions

View file

@ -1,4 +1,4 @@
//go:build !linux
//go:build !linux && !windows
package main
@ -6,3 +6,7 @@ import "os/exec"
func setPdeathsig(cmd *exec.Cmd) {
}
func addProcessToJob(cmd *exec.Cmd) error {
return nil
}

View file

@ -10,3 +10,7 @@ import (
func setPdeathsig(cmd *exec.Cmd) {
cmd.SysProcAttr = &syscall.SysProcAttr{Pdeathsig: syscall.SIGTERM}
}
func addProcessToJob(cmd *exec.Cmd) error {
return nil
}

View file

@ -0,0 +1,35 @@
//go:build windows
package main
import (
"os/exec"
log "github.com/sirupsen/logrus"
"github.com/tg123/jobobject"
)
func setPdeathsig(cmd *exec.Cmd) {
}
func addProcessToJob(cmd *exec.Cmd) error {
if jobObject == nil {
return nil
}
if cmd.Process == nil {
return nil
}
return jobObject.AddProcess(cmd.Process)
}
var jobObject *jobobject.JobObject
func init() {
var err error
jobObject, err = jobobject.Create()
if err != nil {
log.Warnf("failed to create job object: %v", err)
}
}

View file

@ -62,6 +62,10 @@ func createCmdPlugin(args []string) (*plugin.CmdPlugin, error) {
return nil, err
}
if err := addProcessToJob(cmd); err != nil {
return nil, err
}
p.Name = exe
return p, nil