From 4bbe30c66aed093986e8b479f6513f4e13c80b93 Mon Sep 17 00:00:00 2001 From: Jai Flack Date: Wed, 11 Mar 2020 21:43:51 +1000 Subject: [PATCH 1/4] Properly handle SIGHUP, SIGINT and SIGTERM --- app.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/app.go b/app.go index 7f797967..fcca006a 100644 --- a/app.go +++ b/app.go @@ -7,6 +7,8 @@ import ( "log" "os" "os/exec" + "os/signal" + "syscall" "path/filepath" "strings" "time" @@ -34,11 +36,21 @@ func newApp() *app { ui := newUI() nav := newNav(ui.wins[0].h) + quitChan := make(chan bool, 1) + + osChan := make(chan os.Signal, 1) + signal.Notify(osChan, os.Interrupt, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM) + go func() { + <-osChan + quitChan <- true + return + }() + return &app{ ui: ui, nav: nav, ticker: new(time.Ticker), - quitChan: make(chan bool, 1), + quitChan: quitChan, } } From 977ec066eee1a3442e0411b01d950c1eecbaab3c Mon Sep 17 00:00:00 2001 From: Jai Flack Date: Sat, 21 Mar 2020 01:33:42 +1000 Subject: [PATCH 2/4] Do not handle SIGINT --- app.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app.go b/app.go index fcca006a..63b91f81 100644 --- a/app.go +++ b/app.go @@ -39,7 +39,7 @@ func newApp() *app { quitChan := make(chan bool, 1) osChan := make(chan os.Signal, 1) - signal.Notify(osChan, os.Interrupt, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM) + signal.Notify(osChan, os.Interrupt, syscall.SIGHUP, syscall.SIGTERM) go func() { <-osChan quitChan <- true From a5531f5fa167d22d84faacdda6bd9f9596d4bd95 Mon Sep 17 00:00:00 2001 From: Jai Flack Date: Sat, 21 Mar 2020 02:03:38 +1000 Subject: [PATCH 3/4] Cancel current copy/move/delete operation --- app.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app.go b/app.go index 63b91f81..b957553e 100644 --- a/app.go +++ b/app.go @@ -42,6 +42,9 @@ func newApp() *app { signal.Notify(osChan, os.Interrupt, syscall.SIGHUP, syscall.SIGTERM) go func() { <-osChan + nav.copyTotal = 0 + nav.moveTotal = 0 + nav.deleteTotal = 0 quitChan <- true return }() From f729b5cf35ccea2edc432fd5019618af32f243ef Mon Sep 17 00:00:00 2001 From: Jai Flack Date: Sat, 21 Mar 2020 02:12:15 +1000 Subject: [PATCH 4/4] Better cancel current operation --- app.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app.go b/app.go index b957553e..06fb18d3 100644 --- a/app.go +++ b/app.go @@ -42,9 +42,9 @@ func newApp() *app { signal.Notify(osChan, os.Interrupt, syscall.SIGHUP, syscall.SIGTERM) go func() { <-osChan - nav.copyTotal = 0 - nav.moveTotal = 0 - nav.deleteTotal = 0 + nav.copyTotalChan <- -nav.copyTotal + nav.moveTotalChan <- -nav.moveTotal + nav.deleteTotalChan <- -nav.deleteTotal quitChan <- true return }()