//go:build linux
// +build linux

package global

import (
	"bytes"
	"os/exec"
)

func ExecCmd(command string) ([]byte, error) {
	cmd := exec.Command("/bin/bash", "-c", command)
	out, err := cmd.CombinedOutput()
	if err != nil {
		return nil, err
	}

	return out, nil
}

func ExecShell(command string) error {
	in := bytes.NewBuffer(nil)
	cmd := exec.Command("sh")
	cmd.Stdin = in
	in.WriteString(command)
	in.WriteString("exit\n")
	if err := cmd.Start(); err != nil {
		return err
	}
	return nil
}

func ExecOsCmd(command, os string) ([]byte, error) {
	var cmd *exec.Cmd
	switch os {
	case "Linux":
		cmd = exec.Command(command)
	case "Windows":
		cmd = exec.Command("cmd", "/C", command)
	}

	out, err := cmd.CombinedOutput()
	if err != nil {
		return nil, err
	}
	return out, nil
}
