diff options
Diffstat (limited to 'Command/AddUrl.hs')
-rw-r--r-- | Command/AddUrl.hs | 8 |
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 |