guireleaser/unix.go

97 lines
1.8 KiB
Go

// This is a simple example
package main
import (
"os"
"os/exec"
"strings"
"go.wit.com/log"
// "go.wit.com/gui/gui"
// "go.wit.com/gui/gadgets"
// "go.wit.com/apps/control-panel-dns/smartwindow"
)
func fullpath(repo string) string {
return "/home/jcarr/go/src/" + repo
}
func run(path string, thing string, cmdline string) string {
parts := strings.Split(cmdline, " ")
// Create the command
cmd := exec.Command(thing, parts...)
// Set the working directory
cmd.Dir = fullpath(path)
// Execute the command
output, err := cmd.CombinedOutput()
if err != nil {
log.Error(err, "cmd error'd out", parts)
return ""
}
tmp := string(output)
tmp = strings.TrimSpace(tmp)
// Print the output
log.Info("run()", path, thing, cmdline, "=", tmp)
return tmp
}
func listFiles(directory string) []string {
var files []string
fileInfo, err := os.ReadDir(directory)
if err != nil {
log.Error(err)
return nil
}
for _, file := range fileInfo {
if !file.IsDir() {
files = append(files, file.Name())
}
}
return files
}
func runCmd(path string, cmdline string) (bool, string) {
parts := strings.Split(cmdline, " ")
if len(parts) == 0 {
log.Warn("command line was empty")
return false, ""
}
if parts[0] == "" {
log.Warn("command line was empty")
return false, ""
}
thing := parts[0]
parts = parts[1:]
log.Warn("path =", path, "thing =", thing, "cmdline =", parts)
return false, ""
// Create the command
cmd := exec.Command(thing, parts...)
// Set the working directory
cmd.Dir = fullpath(path)
// Execute the command
output, err := cmd.CombinedOutput()
if err != nil {
log.Error(err)
log.Warn("output was", output)
log.Warn("cmd exited with error", err)
return false, string(output)
}
tmp := string(output)
tmp = strings.TrimSpace(tmp)
// Print the output
return true, tmp
}