summaryrefslogtreecommitdiff
path: root/CmdLine.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-10-01 23:01:29 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-10-01 23:01:29 -0400
commit3dfe4819b992b5486f5bca5fda9f64c7b3ed24a6 (patch)
tree498640c261666014080b9f129aab6286d6527171 /CmdLine.hs
parent7701976d6d40697ef40701c0b4c38321e6ca2ceb (diff)
bring back default SIGINT handler
This seems to fix a problem I've recently seen where ctrl-c during rsync leads to `git annex get` moving on to the next thing rather than exiting. Seems likely that started happening with the switch to System.Process (d1da9cf221aeea5c7ac8a313a18b559791a04f12), as the old code took care to install a default SIGINT handler. Note that since the bug was only occurring sometimes, I am not 100% sure I've squashed it, although I seem to have.
Diffstat (limited to 'CmdLine.hs')
-rw-r--r--CmdLine.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/CmdLine.hs b/CmdLine.hs
index b3aeb57aa..a960886fe 100644
--- a/CmdLine.hs
+++ b/CmdLine.hs
@@ -15,6 +15,7 @@ import qualified Control.Exception as E
import qualified Data.Map as M
import Control.Exception (throw)
import System.Console.GetOpt
+import System.Posix.Signals
import Common.Annex
import qualified Annex
@@ -108,7 +109,9 @@ tryRun' errnum state cmd (a:as) = do
{- Actions to perform each time ran. -}
startup :: Annex Bool
-startup = return True
+startup = liftIO $ do
+ void $ installHandler sigINT Default Nothing
+ return True
{- Cleanup actions. -}
shutdown :: Bool -> Annex Bool