summaryrefslogtreecommitdiff
path: root/Command/SendKey.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Command/SendKey.hs')
-rw-r--r--Command/SendKey.hs13
1 files changed, 11 insertions, 2 deletions
diff --git a/Command/SendKey.hs b/Command/SendKey.hs
index 5eca70d24..8f914b5ed 100644
--- a/Command/SendKey.hs
+++ b/Command/SendKey.hs
@@ -12,6 +12,7 @@ import Command
import Annex.Content
import Utility.RsyncFile
import Logs.Transfer
+import qualified Fields
def :: [Command]
def = [oneShot $ command "sendkey" paramKey seek
@@ -24,9 +25,17 @@ start :: Key -> CommandStart
start key = ifM (inAnnex key)
( fieldTransfer Upload key $ do
file <- inRepo $ gitAnnexLocation key
- liftIO $ ifM (rsyncServerSend file)
- ( exitSuccess , exitFailure )
+ liftIO $ rsyncServerSend file
, do
warning "requested key is not present"
liftIO exitFailure
)
+
+fieldTransfer :: Direction -> Key -> Annex Bool -> CommandStart
+fieldTransfer direction key a = do
+ afile <- Fields.getField Fields.associatedFile
+ ok <- maybe a (\u -> runTransfer (Transfer direction (toUUID u) key) afile a)
+ =<< Fields.getField Fields.remoteUUID
+ if ok
+ then liftIO exitSuccess
+ else liftIO exitFailure