haskell-docs-cli-1.0.0.0: src/Docs/CLI/Directory.hs
module Docs.CLI.Directory where
import System.Directory (createDirectoryIfMissing, getXdgDirectory, XdgDirectory(..))
import System.FilePath
newtype AppCache = AppCache FilePath
-- | Create top directory of app cache if it doesn't exist
mkAppCacheDir :: Maybe FilePath -- ^ overwrite XDG_CACHE_HOME/haskell-docs-cli
-> IO AppCache
mkAppCacheDir mpath = do
dir <- (</> "html_cache") <$> case mpath of
Just path -> return path
Nothing -> getXdgDirectory XdgCache "haskell-docs-cli"
createDirectoryIfMissing True dir
return $ AppCache dir
getAppHistoryFile :: IO FilePath
getAppHistoryFile = do
-- here's some discussion why history files belong in XDG_DATA_HOME:
-- https://github.com/fish-shell/fish-shell/issues/744
dir <- getXdgDirectory XdgData "haskell-docs-cli"
createDirectoryIfMissing True dir
return (dir </> "haskell-docs-cli.history")