github.com/jmigpin/editor@v1.6.0/util/osutil/misc_default.go (about) 1 //go:build !windows 2 3 package osutil 4 5 import ( 6 "fmt" 7 "os/exec" 8 "strings" 9 10 "golang.org/x/sys/unix" 11 ) 12 13 //---------- 14 15 const EscapeRune = '\\' 16 17 //---------- 18 19 func SetupExecCmdSysProcAttr(cmd *exec.Cmd) { 20 cmd.SysProcAttr = &unix.SysProcAttr{Setsid: true} 21 } 22 23 func KillExecCmd(cmd *exec.Cmd) error { 24 if cmd.Process == nil { 25 return fmt.Errorf("process is nil") 26 } 27 // negative pid (but !=-1) sends signals to the process group 28 return unix.Kill(-cmd.Process.Pid, unix.SIGKILL) 29 } 30 31 //---------- 32 33 func ShellRunArgs(args ...string) []string { 34 return []string{"sh", "-c", strings.Join(args, " ")} 35 } 36 37 //---------- 38 39 func ExecName(name string) string { 40 return name 41 } 42 43 //---------- 44 45 func FsCaseFilename(filename string) (string, error) { 46 return filename, nil 47 }