summaryrefslogtreecommitdiff
path: root/Command
diff options
context:
space:
mode:
Diffstat (limited to 'Command')
-rw-r--r--Command/AddUrl.hs8
1 files changed, 8 insertions, 0 deletions
diff --git a/Command/AddUrl.hs b/Command/AddUrl.hs
index 516d50a75..838b8fd4d 100644
--- a/Command/AddUrl.hs
+++ b/Command/AddUrl.hs
@@ -259,6 +259,7 @@ performQuvi relaxed pageurl videourl file = ifAnnexed file addurl geturl
#ifdef WITH_QUVI
addUrlFileQuvi :: Bool -> URLString -> URLString -> FilePath -> Annex (Maybe Key)
addUrlFileQuvi relaxed quviurl videourl file = do
+ checkDoesNotExist file
let key = Backend.URL.fromUrl quviurl Nothing
ifM (pure relaxed <||> Annex.getState Annex.fast)
( do
@@ -309,12 +310,19 @@ addUrlChecked relaxed url u checkexistssize key
addUrlFile :: Bool -> URLString -> Url.UrlInfo -> FilePath -> Annex (Maybe Key)
addUrlFile relaxed url urlinfo file = do
+ checkDoesNotExist file
liftIO $ createDirectoryIfMissing True (parentDir file)
ifM (Annex.getState Annex.fast <||> pure relaxed)
( nodownload url urlinfo file
, downloadWeb url urlinfo file
)
+checkDoesNotExist :: FilePath -> Annex ()
+checkDoesNotExist file = go =<< liftIO (catchMaybeIO $ getSymbolicLinkStatus file)
+ where
+ go Nothing = return ()
+ go (Just _) = error $ file ++ " already exists and is not annexed; not overwriting"
+
downloadWeb :: URLString -> Url.UrlInfo -> FilePath -> Annex (Maybe Key)
downloadWeb url urlinfo file = do
let dummykey = addSizeUrlKey urlinfo $ Backend.URL.fromUrl url Nothing