summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent P. René de Cotret <LaurentRDC@users.noreply.github.com>2021-04-15 15:51:38 -0400
committerGitHub <noreply@github.com>2021-04-15 22:51:38 +0300
commit122dd424891f6c9be15ff5225886484386dd0956 (patch)
tree83d65c31bdd3a63d0305c6210225aaf9f29ffba5
parentaf9e29b5456c105dc948bc46c93e989a650b5ed1 (diff)
downloadhakyll-122dd424891f6c9be15ff5225886484386dd0956.tar.gz
Remove dependency on cryptonite and memory (#843)
-rw-r--r--hakyll.cabal3
-rw-r--r--lib/Hakyll/Core/Store.hs29
-rw-r--r--test.hs6
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