on 42f3721 help sign in
elk/builder/src/Stuff/Paths.hs
93 lines 1.5 kB history raw
1{-# OPTIONS_GHC -Wall #-}
2module Stuff.Paths
3 ( docs
4 , summary
5 , prepublishDir
6 , removeStuff
7 , elmi
8 , elmo
9 , moduleDocs
10 , temp
11 )
12 where
15import Control.Monad.Trans (liftIO)
16import qualified System.Directory as Dir
17import System.FilePath ((</>), (<.>))
19import qualified Elm.Compiler as Compiler
20import qualified Elm.Compiler.Module as Module
21import qualified Elm.Package as Pkg
22import qualified Reporting.Task as Task
26-- PATHS
29stuff :: FilePath
30stuff =
31 "elm-stuff" </> Pkg.versionToString Compiler.version
34docs :: FilePath
35docs =
36 stuff </> "docs.json"
39summary :: FilePath
40summary =
41 stuff </> "summary.dat"
44prepublishDir :: FilePath
45prepublishDir =
46 stuff </> "prepublish"
50-- REMOVE STUFF
53removeStuff :: FilePath -> Task.Task_ e ()
54removeStuff root =
55 liftIO $
56 do let dir = root </> "elm-stuff"
57 exists <- Dir.doesDirectoryExist dir
58 if exists
59 then Dir.removeDirectoryRecursive dir
60 else return ()
64-- ELMI and ELMO
67elmi :: FilePath -> Module.Raw -> FilePath
68elmi root name =
69 toArtifactPath root name "elmi"
72elmo :: FilePath -> Module.Raw -> FilePath
73elmo root name =
74 toArtifactPath root name "elmo"
77moduleDocs :: FilePath -> Module.Raw -> FilePath
78moduleDocs root name =
79 toArtifactPath root name "json"
82toArtifactPath :: FilePath -> Module.Raw -> String -> FilePath
83toArtifactPath root name ext =
84 root </> stuff </> Module.nameToHyphenPath name <.> ext
88-- TEMP
91temp :: String -> FilePath
92temp ext =
93 stuff </> "temp" <.> ext