summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--run.go21
-rw-r--r--shell.go15
2 files changed, 27 insertions, 9 deletions
diff --git a/run.go b/run.go
index 79f1214..7a4f3b6 100644
--- a/run.go
+++ b/run.go
@@ -47,22 +47,25 @@ func RunString(args string) bool {
func Run(args []string) bool {
dir, err := os.Getwd()
if err != nil {
- println("Failed to get current directory:", err)
return false
}
- return RunPath(dir, args)
+ err = RunPath(dir, args)
+ if err == nil {
+ return true
+ }
+ return false
}
+var ErrorArgvEmpty error = errors.New("command was empty")
+
// run, but set the working path
-func RunPath(path string, args []string) bool {
+func RunPath(path string, args []string) error {
if len(args) == 0 {
- log.Warn("command line was empty")
- return false
+ return ErrorArgvEmpty
}
if args[0] == "" {
- log.Warn("command line was empty")
- return false
+ return ErrorArgvEmpty
}
thing := args[0]
parts := args[1:]
@@ -81,9 +84,9 @@ func RunPath(path string, args []string) bool {
log.Info("path =", path)
log.Info("args =", args)
log.Info("err =", err.Error())
- return false
+ return err
}
- return true
+ return nil
}
func (cmd *OldShell) Run(cmdline string) string {
diff --git a/shell.go b/shell.go
index faaad07..21982af 100644
--- a/shell.go
+++ b/shell.go
@@ -165,6 +165,21 @@ func Exec(cmdline string) {
os.Exit(0)
}
+func NewRun(workingpath string, cmd []string) error {
+ log.Log(INFO, "NewRun() ", cmd)
+
+ process := exec.Command(cmd[0], cmd[1:len(cmd)]...)
+ // Set the working directory
+ process.Dir = workingpath
+ process.Stderr = os.Stderr
+ process.Stdin = os.Stdin
+ process.Stdout = os.Stdout
+ process.Start()
+ err := process.Wait()
+ log.Log(INFO, "shell.Exec() err =", err)
+ return err
+}
+
// return true if the filename exists (cross-platform)
func Exists(filename string) bool {
_, err := os.Stat(Path(filename))