diff options
Diffstat (limited to 'Remote/Helper/Export.hs')
-rw-r--r-- | Remote/Helper/Export.hs | 26 |
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) |