bkr-0.1.0: src/System/Bkr/BkrFundare.hs
module System.Bkr.BkrFundare ( BkrMeta(..)
, getBkrMeta
) where
import System.Bkr.Hasher
import System.Directory (getModificationTime)
data BkrMeta = BkrMeta { fullPath :: FilePath
, fileChecksum :: String
, pathChecksum :: String
, modificationTime :: String
, modificationTimeChecksum :: String
} deriving Show
{-|
True for:
fileChecksum && pathChecksum
or
pathChecksum && modificationTimeChecksum
-}
instance Eq BkrMeta where
meta1 == meta2 = (fileChecksum meta1 == fileChecksum meta2 && pathChecksum meta1 == pathChecksum meta2) || (pathChecksum meta1 == pathChecksum meta2 && modificationTimeChecksum meta1 == modificationTimeChecksum meta2)
{-| Gets BkrMeta for a FilePath. -}
getBkrMeta :: FilePath -> IO BkrMeta
getBkrMeta path = do
fileHash <- getFileHash path
modTime <- getModificationTime path
return $ BkrMeta path (show fileHash) (show $ getHashForString path) (show modTime) (show $ getHashForString $ show modTime)