From cb3b73df6c936adee5d3b12676db26849bef1a48 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 22 Feb 2018 13:20:19 -0400 Subject: [PATCH] importfeed: Fix a failure when downloading with youtube-dl and the destination subdirectory does not exist yet. Noticed while running this (which a user posted in a comment they deleted for some reason): git-annex importfeed https://vimeo.com/logiingimars/videos/rss The filename that youtube-dl suggests included a subdirectory, which didn't exist, so renaming to it failed. This commit was sponsored by mo on Patreon. --- CHANGELOG | 2 ++ Command/AddUrl.hs | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 737ffc4a5f..c03db1f93c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -24,6 +24,8 @@ git-annex (6.20180113) UNRELEASED; urgency=medium the json output. * Remove temporary code added in 6.20160619 to prime the mergedrefs log. + * importfeed: Fix a failure when downloading with youtube-dl + and the destination subdirectory does not exist yet. -- Joey Hess Wed, 24 Jan 2018 20:42:55 -0400 diff --git a/Command/AddUrl.hs b/Command/AddUrl.hs index dfdbf5b5a1..0e7201f123 100644 --- a/Command/AddUrl.hs +++ b/Command/AddUrl.hs @@ -370,7 +370,9 @@ addWorkTree u url file key mtmp = case mtmp of Nothing -> go Just tmp -> do -- Move to final location for large file check. - pruneTmpWorkDirBefore tmp (\_ -> liftIO $ renameFile tmp file) + pruneTmpWorkDirBefore tmp $ \_ -> liftIO $ do + createDirectoryIfMissing True (takeDirectory file) + renameFile tmp file largematcher <- largeFilesMatcher large <- checkFileMatcher largematcher file if large