From 084c0c4ec8721204f9b689e75e35f8cec37e4b9e Mon Sep 17 00:00:00 2001 From: Bradley Cicenas Date: Thu, 23 Mar 2017 16:48:25 +1000 Subject: [PATCH] add global Shutdown() method for exit cleanup --- main.go | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/main.go b/main.go index 8c28299..b0a3ba3 100644 --- a/main.go +++ b/main.go @@ -20,6 +20,8 @@ var ( cursor *GridCursor cGrid *compact.CompactGrid header *widgets.CTopHeader + + versionStr = fmt.Sprintf("ctop version %v, build %v", version, build) ) func main() { @@ -36,7 +38,7 @@ func main() { flag.Parse() if *versionFlag { - printVersion() + fmt.Println(versionStr) os.Exit(0) } @@ -77,8 +79,8 @@ func main() { if err := ui.Init(); err != nil { panic(err) } - defer ui.Close() + defer Shutdown() // init grid, cursor, header cursor = NewGridCursor() cGrid = compact.NewCompactGrid() @@ -87,13 +89,17 @@ func main() { for { exit := Display() if exit { - log.Notice("shutting down") - log.Exit() return } } } +func Shutdown() { + log.Notice("shutting down") + log.Exit() + ui.Close() +} + // ensure a given sort field is valid func validSort(s string) { if _, ok := Sorters[s]; !ok { @@ -104,7 +110,7 @@ func validSort(s string) { func panicExit() { if r := recover(); r != nil { - ui.Clear() + Shutdown() fmt.Printf("panic: %s\n", r) os.Exit(1) } @@ -121,7 +127,3 @@ func printHelp() { fmt.Println(helpMsg) flag.PrintDefaults() } - -func printVersion() { - fmt.Printf("ctop version %v, build %v\n", version, build) -}