diff options
Diffstat (limited to 'Command/Mirror.hs')
-rw-r--r-- | Command/Mirror.hs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/Command/Mirror.hs b/Command/Mirror.hs index 8fdba123b..50aca0338 100644 --- a/Command/Mirror.hs +++ b/Command/Mirror.hs @@ -47,25 +47,27 @@ seek o = allowConcurrentOutput $ (mirrorFiles o) start :: MirrorOptions -> FilePath -> Key -> CommandStart -start o file = startKey o (Just file) +start o file k = startKey o afile k (mkActionItem afile) + where + afile = Just file -startKey :: MirrorOptions -> Maybe FilePath -> Key -> CommandStart -startKey o afile key = case fromToOptions o of +startKey :: MirrorOptions -> Maybe FilePath -> Key -> ActionItem -> CommandStart +startKey o afile key ai = case fromToOptions o of ToRemote r -> ifM (inAnnex key) - ( Command.Move.toStart False afile key =<< getParsed r + ( Command.Move.toStart False afile key ai =<< getParsed r , do numcopies <- getnumcopies - Command.Drop.startRemote afile numcopies key =<< getParsed r + Command.Drop.startRemote afile ai numcopies key =<< getParsed r ) FromRemote r -> do haskey <- flip Remote.hasKey key =<< getParsed r case haskey of Left _ -> stop - Right True -> Command.Get.start' (return True) Nothing key afile + Right True -> Command.Get.start' (return True) Nothing key afile ai Right False -> ifM (inAnnex key) ( do numcopies <- getnumcopies - Command.Drop.startLocal afile numcopies key [] + Command.Drop.startLocal afile ai numcopies key [] , stop ) where |