on 4e94115 help sign in
elk/builder/src/Elm/PerUserCache.hs
47 lines 866 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.Compiler as Compiler
14import qualified Elm.Package as Pkg
18-- ROOTS
21getPackageRoot :: IO FilePath
22getPackageRoot =
23 getRoot "package"
26getReplRoot :: IO FilePath
27getReplRoot =
28 getRoot "repl"
31getRoot :: FilePath -> IO FilePath
32getRoot projectName =
33 do home <- getElmHome
34 let root = home </> version </> projectName
35 Dir.createDirectoryIfMissing True root
36 return root
39version :: FilePath
40version =
41 Pkg.versionToString Compiler.version
44getElmHome :: IO FilePath
45getElmHome =
46 do maybeHome <- Env.lookupEnv "ELM_HOME"
47 maybe (Dir.getAppUserDataDirectory "elm") return maybeHome