summaryrefslogtreecommitdiff
path: root/Command/RecvKey.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-07-02 15:45:20 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-07-02 15:45:20 -0400
commit3ea708e03b253456961aeeffb4cf37bd15432d09 (patch)
tree131daffaea10c8a7e3e4890df74fe21e9a87b6f9 /Command/RecvKey.hs
parent7625319c2c18c1d75a4ba5e4c2819fb0a31641ed (diff)
parent0c0fd0c54c126268a4867e4dd0d1d42a46621665 (diff)
Merge branch 'master' into assistant
Diffstat (limited to 'Command/RecvKey.hs')
-rw-r--r--Command/RecvKey.hs24
1 files changed, 13 insertions, 11 deletions
diff --git a/Command/RecvKey.hs b/Command/RecvKey.hs
index 9744a56d4..ce8bff997 100644
--- a/Command/RecvKey.hs
+++ b/Command/RecvKey.hs
@@ -12,6 +12,7 @@ import Command
import CmdLine
import Annex.Content
import Utility.RsyncFile
+import Logs.Transfer
def :: [Command]
def = [oneShot $ command "recvkey" paramKey seek
@@ -21,14 +22,15 @@ seek :: [CommandSeek]
seek = [withKeys start]
start :: Key -> CommandStart
-start key = do
- whenM (inAnnex key) $ error "key is already present in annex"
-
- ok <- getViaTmp key (liftIO . rsyncServerReceive)
- if ok
- then do
- -- forcibly quit after receiving one key,
- -- and shutdown cleanly
- _ <- shutdown True
- liftIO exitSuccess
- else liftIO exitFailure
+start key = ifM (inAnnex key)
+ ( error "key is already present in annex"
+ , fieldTransfer Download key $ do
+ ifM (getViaTmp key $ liftIO . rsyncServerReceive)
+ ( do
+ -- forcibly quit after receiving one key,
+ -- and shutdown cleanly
+ _ <- shutdown True
+ liftIO exitSuccess
+ , liftIO exitFailure
+ )
+ )