From f6a9c727faa06142208d8189441414b6bedb7b98 Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Tue, 7 Aug 2018 18:05:43 +1000 Subject: run subprocess cleanly --- main.go | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index b3586b04e..a0b87d716 100644 --- a/main.go +++ b/main.go @@ -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) + } + } + } } -- cgit v1.2.3