{- .git/objects - - Copyright 2013 Joey Hess - - Licensed under the GNU GPL version 3 or higher. -} module Git.Objects where import Common import Git objectsDir :: Repo -> FilePath objectsDir r = localGitDir r "objects" packDir :: Repo -> FilePath packDir r = objectsDir r "pack" listPackFiles :: Repo -> IO [FilePath] listPackFiles r = filter (".pack" `isSuffixOf`) <$> catchDefaultIO [] (dirContents $ packDir r) packIdxFile :: FilePath -> FilePath packIdxFile = flip replaceExtension "idx" looseObjectFile :: Repo -> Sha -> FilePath looseObjectFile r sha = objectsDir r prefix rest where (prefix, rest) = splitAt 2 (show sha)