summaryrefslogtreecommitdiff
path: root/Command
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-04-10 17:08:07 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-04-10 17:08:07 -0400
commitc7a5cc5cc31377e5fed1fc59bfdeb503784d060d (patch)
tree2acb62d5fef9a1b2a02cbc43fa8c81b7108c91f1 /Command
parentb4dd6c2250efd959c2b0c0d032d9508ef55ea79a (diff)
get, move, copy, mirror: Concurrent downloads and uploads are now supported!
This works, and seems fairly robust. Clean get of 20 files at -J3. At -J10, there are some messages about ssh multiplexing, probably due to a race spinning up the ssh connection cacher. But, it manages to get all the files ok regardless. The progress bars are a scrambled mess though, due to bugs in ascii-progress, which I've already filed. Particularly this one: https://github.com/yamadapc/haskell-ascii-progress/issues/8
Diffstat (limited to 'Command')
-rw-r--r--Command/Get.hs2
-rw-r--r--Command/Mirror.hs2
-rw-r--r--Command/Move.hs2
-rw-r--r--Command/Sync.hs6
4 files changed, 6 insertions, 6 deletions
diff --git a/Command/Get.hs b/Command/Get.hs
index 922aee06a..111c69e32 100644
--- a/Command/Get.hs
+++ b/Command/Get.hs
@@ -21,7 +21,7 @@ cmd = [withOptions getOptions $ command "get" paramPaths seek
SectionCommon "make content of annexed files available"]
getOptions :: [Option]
-getOptions = fromOption : annexedMatchingOptions ++ keyOptions ++ [autoOption]
+getOptions = fromOption : autoOption : jobsOption : annexedMatchingOptions ++ keyOptions
seek :: CommandSeek
seek ps = do
diff --git a/Command/Mirror.hs b/Command/Mirror.hs
index a04efb89b..6c3895be1 100644
--- a/Command/Mirror.hs
+++ b/Command/Mirror.hs
@@ -21,7 +21,7 @@ cmd = [withOptions mirrorOptions $ command "mirror" paramPaths seek
SectionCommon "mirror content of files to/from another repository"]
mirrorOptions :: [Option]
-mirrorOptions = fromToOptions ++ annexedMatchingOptions ++ keyOptions
+mirrorOptions = fromToOptions ++ [jobsOption] ++ annexedMatchingOptions ++ keyOptions
seek :: CommandSeek
seek ps = do
diff --git a/Command/Move.hs b/Command/Move.hs
index bdc8018ba..91f7c8ea7 100644
--- a/Command/Move.hs
+++ b/Command/Move.hs
@@ -22,7 +22,7 @@ cmd = [withOptions moveOptions $ command "move" paramPaths seek
SectionCommon "move content of files to/from another repository"]
moveOptions :: [Option]
-moveOptions = fromToOptions ++ keyOptions ++ annexedMatchingOptions
+moveOptions = fromToOptions ++ [jobsOption] ++ keyOptions ++ annexedMatchingOptions
seek :: CommandSeek
seek ps = do
diff --git a/Command/Sync.hs b/Command/Sync.hs
index 130693909..7c1ed0067 100644
--- a/Command/Sync.hs
+++ b/Command/Sync.hs
@@ -389,7 +389,7 @@ syncFile rs f k = do
u <- getUUID
let locs' = concat [[u | got], putrs, locs]
- -- Using callCommandAction rather than commandAction for drops,
+ -- Using callCommandAction rather than includeCommandAction for drops,
-- because a failure to drop does not mean the sync failed.
handleDropsFrom locs' rs "unwanted" True k (Just f)
Nothing callCommandAction
@@ -403,7 +403,7 @@ syncFile rs f k = do
( return [ get have ]
, return []
)
- get have = commandAction $ do
+ get have = includeCommandAction $ do
showStart "get" f
next $ next $ getViaTmp k $ \dest -> getKeyFile' k (Just f) dest have
@@ -415,7 +415,7 @@ syncFile rs f k = do
, return []
)
put dest = do
- ok <- commandAction $ do
+ ok <- includeCommandAction $ do
showStart "copy" f
Command.Move.toStart' dest False (Just f) k
return (ok, if ok then Just (Remote.uuid dest) else Nothing)