From a69ec1a135daa14922d354624dbb5558282f6d95 Mon Sep 17 00:00:00 2001 From: Simon Hengel Date: Wed, 27 Dec 2017 13:13:54 +0800 Subject: [PATCH] Create directory for defaults cache entry only on 200 --- src/Hpack/Defaults.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Hpack/Defaults.hs b/src/Hpack/Defaults.hs index 192ac2c..24e06fd 100644 --- a/src/Hpack/Defaults.hs +++ b/src/Hpack/Defaults.hs @@ -41,7 +41,10 @@ get url file = do request <- parseRequest url response <- httpLbs request manager case responseStatus response of - Status 200 _ -> LB.writeFile file (responseBody response) >> return Found + Status 200 _ -> do + createDirectoryIfMissing True (takeDirectory file) + LB.writeFile file (responseBody response) + return Found Status 404 _ -> return NotFound status -> return (Failed $ "Error while downloading " ++ url ++ " (" ++ formatStatus status ++ ")") @@ -61,7 +64,6 @@ ensure dir defaults = ensureFile :: FilePath -> URL -> IO Result ensureFile file url = do - createDirectoryIfMissing True (takeDirectory file) doesFileExist file >>= \ case True -> return Found False -> get url file