From 122dd424891f6c9be15ff5225886484386dd0956 Mon Sep 17 00:00:00 2001 From: "Laurent P. René de Cotret" Date: Thu, 15 Apr 2021 15:51:38 -0400 Subject: Remove dependency on cryptonite and memory (#843) --- hakyll.cabal | 3 +-- lib/Hakyll/Core/Store.hs | 29 +++-------------------------- test.hs | 6 ++---- 3 files changed, 6 insertions(+), 32 deletions(-) diff --git a/hakyll.cabal b/hakyll.cabal index f799344..b09aff0 100644 --- a/hakyll.cabal +++ b/hakyll.cabal @@ -175,14 +175,13 @@ Library blaze-markup >= 0.5.1 && < 0.9, bytestring >= 0.9 && < 0.11, containers >= 0.3 && < 0.7, - cryptonite >= 0.25 && < 0.29, data-default >= 0.4 && < 0.8, deepseq >= 1.3 && < 1.5, directory >= 1.2.7.0 && < 1.4, file-embed >= 0.0.10.1 && < 0.0.14, filepath >= 1.0 && < 1.5, + hashable >= 1.0 && < 2, lrucache >= 1.1.1 && < 1.3, - memory >= 0.14.18 && < 0.16, mtl >= 1 && < 2.3, network-uri >= 2.6 && < 2.7, optparse-applicative >= 0.12 && < 0.17, diff --git a/lib/Hakyll/Core/Store.hs b/lib/Hakyll/Core/Store.hs index bfcd191..da16c6f 100644 --- a/lib/Hakyll/Core/Store.hs +++ b/lib/Hakyll/Core/Store.hs @@ -16,20 +16,14 @@ module Hakyll.Core.Store -------------------------------------------------------------------------------- -import qualified Data.ByteArray as BA -import qualified Crypto.Hash as CH +import qualified Data.Hashable as DH import Data.Binary (Binary, decode, encodeFile) -import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as BL import qualified Data.Cache.LRU.IO as Lru import Data.List (intercalate) import Data.Maybe (isJust) -import qualified Data.Text as T -import qualified Data.Text.Encoding as T import Data.Typeable (TypeRep, Typeable, cast, typeOf) -import Numeric (showHex) -import System.Directory (createDirectoryIfMissing) -import System.Directory (doesFileExist, removeFile) +import System.Directory (createDirectoryIfMissing, doesFileExist, removeFile) import System.FilePath (()) import System.IO (IOMode (..), hClose, openFile) import System.IO.Error (catchIOError, ioeSetFileName, @@ -194,21 +188,4 @@ deleteFile = (`catchIOError` \_ -> return ()) . removeFile -------------------------------------------------------------------------------- -- | Mostly meant for internal usage hash :: [String] -> String -hash = toHex . B.unpack . hashMD5 . T.encodeUtf8 . T.pack . intercalate "/" - where - toHex [] = "" - toHex (x : xs) | x < 16 = '0' : showHex x (toHex xs) - | otherwise = showHex x (toHex xs) - - --------------------------------------------------------------------------------- --- | Hash by MD5 -hashMD5 :: B.ByteString -> B.ByteString -hashMD5 x = - let - digest :: CH.Digest CH.MD5 - digest = CH.hash x - bytes :: B.ByteString - bytes = BA.convert digest - in - bytes +hash = show . DH.hash . intercalate "/" \ No newline at end of file diff --git a/test.hs b/test.hs index 8b3a2de..aea447c 100644 --- a/test.hs +++ b/test.hs @@ -1,9 +1,9 @@ {-# LANGUAGE BangPatterns #-} import Control.Monad (forM) -import qualified Crypto.Hash.SHA256 as SHA256 import qualified Data.ByteString.Base16 as Base16 import qualified Data.ByteString.Char8 as BS8 import qualified Data.ByteString.Lazy as BSL +import qualified Data.Hashable as DH import Data.Map (Map) import qualified Data.Map as Map import Hakyll @@ -20,9 +20,7 @@ mkFileHashes dir = do return (fromFilePath path1, h) where hash :: FilePath -> IO String - hash fp = do - !h <- SHA256.hashlazy <$> BSL.readFile fp - return $! BS8.unpack $! Base16.encode h + hash fp = (show . DH.hash) <$> BSL.readFile fp main :: IO () main = hakyll $ do -- cgit v1.2.3