hackage-db-1.22: src/Distribution/Hackage/DB/Path.hs
{- |
Module : Distribution.Hackage.DB.Path
License : BSD3
Maintainer : simons@cryp.to
Stability : provisional
Portability : portable
Find the location of the local Hackage database that is maintained by running
@cabal update@.
-}
module Distribution.Hackage.DB.Path ( hackagePath ) where
import System.Directory ( getAppUserDataDirectory )
import System.FilePath ( joinPath )
-- | Determine the default path of the Hackage database, which typically
-- resides at @"$HOME\/.cabal\/packages\/hackage.haskell.org\/00-index.tar"@.
-- Running the command @"cabal update"@ will keep that file up-to-date.
hackagePath :: IO FilePath
hackagePath = do
cabalDir <- getAppUserDataDirectory "cabal"
return $ joinPath [cabalDir, "packages", "hackage.haskell.org", "00-index.tar"]