diff options
author | Joey Hess <joeyh@joeyh.name> | 2017-11-30 13:45:43 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2017-11-30 14:13:20 -0400 |
commit | 7a8d7ba5ef558f3038ee5ee06e92e5f5e8df1ec5 (patch) | |
tree | 3a2482329870e768f4f92240ae14d61c7768bd0d /Annex | |
parent | 51ab2efc693983dcca6d79b531339b00e23fa871 (diff) |
rethought --relaxed change
Better to make it not be surprising and slow, than surprising and fast.
--raw can be used when it needs to be really fast.
Implemented adding a youtube-dl supported url to an existing file.
This commit was sponsored by andrea rota.
Diffstat (limited to 'Annex')
-rw-r--r-- | Annex/Content.hs | 8 | ||||
-rw-r--r-- | Annex/YoutubeDl.hs | 14 |
2 files changed, 10 insertions, 12 deletions
diff --git a/Annex/Content.hs b/Annex/Content.hs index 0899a12ab..4db5fda38 100644 --- a/Annex/Content.hs +++ b/Annex/Content.hs @@ -1017,10 +1017,10 @@ pruneTmpWorkDirBefore f action = do {- Runs an action, passing it a temporary work directory where - it can write files while receiving the content of a key. - - - On exception, or when the action returns a Left value, + - On exception, or when the action returns Nothing, - the temporary work directory is left, so resumes can use it. -} -withTmpWorkDir :: Key -> (FilePath -> Annex (Either a b)) -> Annex (Either a b) +withTmpWorkDir :: Key -> (FilePath -> Annex (Maybe a)) -> Annex (Maybe a) withTmpWorkDir key action = do -- Create the object file if it does not exist. This way, -- staleKeysPrune only has to look for object files, and can @@ -1034,8 +1034,8 @@ withTmpWorkDir key action = do setAnnexDirPerm tmpdir res <- action tmpdir case res of - Right _ -> liftIO $ removeDirectoryRecursive tmpdir - Left _ -> noop + Just _ -> liftIO $ removeDirectoryRecursive tmpdir + Nothing -> noop return res {- Finds items in the first, smaller list, that are not diff --git a/Annex/YoutubeDl.hs b/Annex/YoutubeDl.hs index 1eafa4173..4e33c2ff3 100644 --- a/Annex/YoutubeDl.hs +++ b/Annex/YoutubeDl.hs @@ -71,14 +71,12 @@ youtubeDlTo key url dest = do case dl of Right (Just mediafile) -> do liftIO $ renameFile mediafile dest - return (Right True) - Right Nothing -> return (Right False) - Left msg -> return (Left msg) - case res of - Left msg -> do - warning msg - return False - Right r -> return r + return (Just True) + Right Nothing -> return (Just False) + Left msg -> do + warning msg + return Nothing + return (fromMaybe False res) youtubeDlSupported :: URLString -> Annex Bool youtubeDlSupported url = either (const False) id <$> youtubeDlCheck url |