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  }