on c299dfe help sign in
elk/builder/src/Elm/PerUserCache.hs
41 lines 793 B history raw
1{-# OPTIONS_GHC -Wall #-}
2module Elm.PerUserCache
3 ( getPackageRoot
4 , getReplRoot
5 )
6 where
8import qualified System.Directory as Dir
9import qualified System.Environment as Env
10import System.FilePath ((</>))
12import qualified Elm.Compiler as Compiler
13import qualified Elm.Package as Pkg
17-- ROOTS
20getPackageRoot :: IO FilePath
21getPackageRoot =
22 getRoot "package"
25getReplRoot :: IO FilePath
26getReplRoot =
27 getRoot "repl"
30getRoot :: FilePath -> IO FilePath
31getRoot projectName =
32 do maybeHome <- Env.lookupEnv "ELM_HOME"
33 home <- maybe (Dir.getAppUserDataDirectory "elm") return maybeHome
34 let root = home </> version </> projectName
35 Dir.createDirectoryIfMissing True root
36 return root
39version :: FilePath
40version =
41 Pkg.versionToString Compiler.version