on 83cd588 help sign in
elk/builder/src/Elm/PerUserCache.hs
46 lines 806 B history raw
1{-# OPTIONS_GHC -Wall #-}
2module Elm.PerUserCache
3 ( getPackageRoot
4 , getReplRoot
5 , getElmHome
6 )
7 where
9import qualified System.Directory as Dir
10import qualified System.Environment as Env
11import System.FilePath ((</>))
13import qualified Elm.Version as V
17-- ROOTS
20getPackageRoot :: IO FilePath
21getPackageRoot =
22 getRoot "package"
25getReplRoot :: IO FilePath
26getReplRoot =
27 getRoot "repl"
30getRoot :: FilePath -> IO FilePath
31getRoot projectName =
32 do home <- getElmHome
33 let root = home </> version </> projectName
34 Dir.createDirectoryIfMissing True root
35 return root
38version :: FilePath
39version =
40 V.toChars V.compiler
43getElmHome :: IO FilePath
44getElmHome =
45 do maybeHome <- Env.lookupEnv "ELM_HOME"
46 maybe (Dir.getAppUserDataDirectory "elm") return maybeHome