summaryrefslogtreecommitdiff
path: root/Command
diff options
context:
space:
mode:
Diffstat (limited to 'Command')
-rw-r--r--Command/Reinject.hs6
-rw-r--r--Command/SetKey.hs7
2 files changed, 8 insertions, 5 deletions
diff --git a/Command/Reinject.hs b/Command/Reinject.hs
index 2c785feb6..de7f6eb3d 100644
--- a/Command/Reinject.hs
+++ b/Command/Reinject.hs
@@ -50,11 +50,13 @@ perform src dest key = do
)
where
-- the file might be on a different filesystem,
- -- so mv is used rather than simply calling
+ -- so moveFile is used rather than simply calling
-- moveToObjectDir; disk space is also
-- checked this way.
move = getViaTmp key $ \tmp ->
- liftIO $ boolSystem "mv" [File src, File tmp]
+ liftIO $ catchBoolIO $ do
+ moveFile src tmp
+ return True
reject = const $ return "wrong file?"
cleanup :: Key -> CommandCleanup
diff --git a/Command/SetKey.hs b/Command/SetKey.hs
index 02118fb14..d5762dd8c 100644
--- a/Command/SetKey.hs
+++ b/Command/SetKey.hs
@@ -31,13 +31,14 @@ mkKey = fromMaybe (error "bad key") . file2key
perform :: FilePath -> Key -> CommandPerform
perform file key = do
- -- the file might be on a different filesystem, so mv is used
+ -- the file might be on a different filesystem, so moveFile is used
-- rather than simply calling moveAnnex; disk space is also
-- checked this way.
ok <- getViaTmp key $ \dest ->
if dest /= file
- then liftIO $
- boolSystem "mv" [File file, File dest]
+ then liftIO $ catchBoolIO $ do
+ moveFile file dest
+ return True
else return True
if ok
then next $ cleanup key