run subprocess cleanly

This commit is contained in:
Jesse Duffield 2018-08-07 18:05:43 +10:00
parent 9067c3be3e
commit f6a9c727fa
3 changed files with 33 additions and 20 deletions

22
main.go
View file

@ -1,19 +1,25 @@
package main
import (
"errors"
"flag"
"fmt"
"log"
"os"
"os/exec"
"os/user"
"time"
"github.com/fatih/color"
"github.com/jesseduffield/gocui"
)
// ErrSubProcess is raised when we are running a subprocess
var (
startTime time.Time
debugging bool
startTime time.Time
debugging bool
ErrSubprocess = errors.New("running subprocess")
subprocess *exec.Cmd
)
func homeDirectory() string {
@ -65,5 +71,15 @@ func main() {
startTime = time.Now()
verifyInGitRepo()
navigateToRepoRootDirectory()
run()
for {
if err := run(); err != nil {
if err == gocui.ErrQuit {
break
} else if err == ErrSubprocess {
subprocess.Run()
} else {
log.Panicln(err)
}
}
}
}