49 lines
879 B
Go
49 lines
879 B
Go
package util
|
|
|
|
import (
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
const tmpdirName = "sebrauc"
|
|
|
|
func DoesFileExist(filepath string) bool {
|
|
_, err := os.Stat(filepath)
|
|
return !os.IsNotExist(err)
|
|
}
|
|
|
|
func CreateDirIfNotExists(dirpath string) error {
|
|
if _, err := os.Stat(dirpath); os.IsNotExist(err) {
|
|
createErr := os.MkdirAll(dirpath, 0o777)
|
|
if createErr != nil {
|
|
return createErr
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func GetTmpdir() (string, error) {
|
|
tmpdir := filepath.Join(os.TempDir(), tmpdirName)
|
|
err := CreateDirIfNotExists(tmpdir)
|
|
return tmpdir, err
|
|
}
|
|
|
|
func CommandFromString(cmdString string) *exec.Cmd {
|
|
parts := strings.Split(cmdString, " ")
|
|
if len(parts) == 0 {
|
|
return exec.Command("")
|
|
}
|
|
|
|
//nolint:gosec
|
|
return exec.Command(parts[0], parts[1:]...)
|
|
}
|
|
|
|
func Reboot(t time.Duration) {
|
|
time.Sleep(t)
|
|
cmd := CommandFromString(RebootCmd)
|
|
_ = cmd.Run()
|
|
}
|