diff options
Diffstat (limited to 'run.go')
| -rw-r--r-- | run.go | 39 |
1 files changed, 35 insertions, 4 deletions
@@ -22,11 +22,42 @@ var msecDelay int = 20 // check every 20 milliseconds // exiterr.Sys().(syscall.WaitStatus) // var newfile *shell.File +func RunString(args string) bool { + return false +} + +func Run(args []string) bool { + dir, err := os.Getwd() + if err != nil { + println("Failed to get current directory:", err) + return false + } -func Run(cmdline string) string { - test := New() - test.Exec(cmdline) - return Chomp(test.Buffer) + return RunPath(dir, args) +} + +func RunPath(path string, args []string) bool { + if len(args) == 0 { + log.Warn("command line was empty") + return false + } + if args[0] == "" { + log.Warn("command line was empty") + return false + } + thing := args[0] + parts := args[1:] + cmd := exec.Command(thing, parts...) + cmd.Dir = path + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + println("path =", path, "cmd =", strings.Join(args, " ")) + if err := cmd.Run(); err != nil { + // Handle error if the command execution fails + println("Error executing command:", err.Error()) + return false + } + return true } func (cmd *Shell) Run(cmdline string) string { |
