summaryrefslogtreecommitdiff
path: root/Remote
diff options
context:
space:
mode:
Diffstat (limited to 'Remote')
-rw-r--r--Remote/Helper/Export.hs26
1 files changed, 14 insertions, 12 deletions
diff --git a/Remote/Helper/Export.hs b/Remote/Helper/Export.hs
index 101124cef..3067ac837 100644
--- a/Remote/Helper/Export.hs
+++ b/Remote/Helper/Export.hs
@@ -151,18 +151,20 @@ adjustExportable r = case M.lookup "exporttree" (config r) of
-- exported file, and after calling removeExportLocation and flushing the
-- database.
removeEmptyDirectories :: ExportActions Annex -> ExportHandle -> ExportLocation -> [Key] -> Annex Bool
-removeEmptyDirectories ea db loc ks = case removeExportDirectory ea of
- Nothing -> return True
- Just removeexportdirectory -> do
- ok <- allM (go removeexportdirectory)
- (reverse (exportedDirectories loc))
- unless ok $ liftIO $ do
- -- Add back to export database, so this is
- -- tried again next time.
- forM_ ks $ \k ->
- addExportLocation db k loc
- flushDbQueue db
- return ok
+removeEmptyDirectories ea db loc ks
+ | null (exportedDirectories loc) = return True
+ | otherwise = case removeExportDirectory ea of
+ Nothing -> return True
+ Just removeexportdirectory -> do
+ ok <- allM (go removeexportdirectory)
+ (reverse (exportedDirectories loc))
+ unless ok $ liftIO $ do
+ -- Add back to export database, so this is
+ -- tried again next time.
+ forM_ ks $ \k ->
+ addExportLocation db k loc
+ flushDbQueue db
+ return ok
where
go removeexportdirectory d =
ifM (liftIO $ isExportDirectoryEmpty db d)