--IO and FP module GiveYouAHead.Common where --outside --import System.IO import System.Directory import System.IO.Extra getDataDir :: IO FilePath getDataDir = getAppUserDataDirectory "GiveYouAHead" getFileMainName :: String -> String getFileMainName = reverse . dropWhile (/= '.') . reverse getDefaultEncoding :: IO String getDefaultEncoding = do gDD <- getDataDir ec <- readFile $ gDD ++ "/defaultencoding" return ec readF :: FilePath -> IO String readF fpath = do ec <- getDefaultEncoding case ec of "UTF8" -> readFileUTF8 fpath _ -> readFile fpath writeF fpath str = do ec <- getDefaultEncoding case ec of "UTF8" -> writeFileUTF8 fpath str _ ->writeFile fpath str writeF :: FilePath -> String -> IO()