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