module HaskellWorks.CabalCache.Hash
  ( hashStorePath
  ) where

import qualified Crypto.Hash        as CH
import qualified Data.Text          as T
import qualified Data.Text.Encoding as T

hashStorePath :: String -> String
hashStorePath :: String -> String
hashStorePath = Int -> String -> String
forall a. Int -> [a] -> [a]
take Int
10 (String -> String) -> (String -> String) -> String -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Digest SHA256 -> String
forall a. Show a => a -> String
show (Digest SHA256 -> String)
-> (String -> Digest SHA256) -> String -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. SHA256 -> ByteString -> Digest SHA256
forall ba alg.
(ByteArrayAccess ba, HashAlgorithm alg) =>
alg -> ba -> Digest alg
CH.hashWith SHA256
CH.SHA256 (ByteString -> Digest SHA256)
-> (String -> ByteString) -> String -> Digest SHA256
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> ByteString
T.encodeUtf8 (Text -> ByteString) -> (String -> Text) -> String -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Text
T.pack