@@ -9,6 +9,7 @@ module File.Find
99import Control.Monad.Except (liftIO)
1010import qualified Data.Map as Map
1111import qualified Data.Maybe as Maybe
12+import qualified System.FilePath as FP
1213import qualified System.Directory as Dir
1314import System.FilePath ((</>), (<.>))
1415
@@ -38,20 +39,22 @@ data Asset
3839
3940find :: Summary.Summary -> E.Origin -> Module.Raw -> Task.Task_ E.Problem Asset
4041find (Summary.Summary root project exposed _ _) origin name =
41− case project of
42− Project.App info ->
43− do let srcDirs = map (root </>) (Project._app_source_dirs info)
44− findElm srcDirs exposed origin name
45−
46− Project.Pkg _ ->
47− if N.startsWith "Elm.Kernel." name then
48− if Project.isPlatformPackage project then
49− findKernel (root </> "src") origin name
50− else
51− Task.throw $ E.ModuleNameReservedForKernel origin name
52−
53− else
54− findElm [ root </> "src" ] exposed origin name
42+ do here <- liftIO Dir.getCurrentDirectory
43+ let toRoot dir = FP.makeRelative here (root </> dir)
44+ case project of
45+ Project.App info ->
46+ do let srcDirs = map toRoot (Project._app_source_dirs info)
47+ findElm srcDirs exposed origin name
48+
49+ Project.Pkg _ ->
50+ if N.startsWith "Elm.Kernel." name then
51+ if Project.isPlatformPackage project then
52+ findKernel (toRoot "src") origin name
53+ else
54+ Task.throw $ E.ModuleNameReservedForKernel origin name
55+
56+ else
57+ findElm [ toRoot "src" ] exposed origin name
5558
5659
5760