module Tn.Paths where

import Tn.Errata

import qualified Data.Text.IO as T
import           System.Directory

-- |The directory in which we're storing our data.
-- 
-- On *nix, this is something like
-- 
-- > ~/.local/share/tn
-- 
-- This can be overridden with certain environment variables. See the
-- module documentation in "System.Directory" for more details.
dataPath :: IO FilePath
dataPath = getXdgDirectory XdgData appName

-- |The path to the journal
-- 
-- This will be 'dataPath' plus @"/journal.yaml"@
journalPath :: IO FilePath
journalPath =
  do dp <- dataPath
     return $ mappend dp "/journal.yaml"

-- |Create the needed paths, and put a skeleton in 'journalPath' if need
-- be.
createNeededFiles :: IO ()
createNeededFiles =
  do dp <- dataPath
     jp <- journalPath
     createDirectoryIfMissing True dp
     jpExists <- doesFileExist jp
     if jpExists
       then return ()
       else T.writeFile jp "[]"