| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | package ncutilsimport (	"context"	"fmt"	"log"	"os/exec"	"strings"	"syscall"	"time")// RunCmdFormatted - run a command formatted for freebsdfunc RunCmdFormatted(command string, printerr bool) (string, error) {	args := strings.Fields(command)	cmd := exec.Command(args[0], args[1:]...)	cmd.Start()	cmd.Wait()	out, err := cmd.CombinedOutput()	if err != nil && printerr {		Log(fmt.Sprintf("error running command: %s", command))		Log(strings.TrimSuffix(string(out), "\n"))	}	return string(out), err}// GetEmbedded - if files required for freebsd, put herefunc GetEmbedded() error {	return nil}// Runs Commands for FreeBSDfunc RunCmd(command string, printerr bool) (string, error) {	args := strings.Fields(command)	ctx, cancel := context.WithTimeout(context.Background(), time.Second)	defer cancel()	cmd := exec.Command(args[0], args[1:]...)	cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}	go func() {		<-ctx.Done()		_ = syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)	}()	out, err := cmd.CombinedOutput()	if err != nil && printerr {		log.Println("error running command:", command)		log.Println(strings.TrimSuffix(string(out), "\n"))	}	return string(out), err}
 |