@@ -13,8 +13,6 @@ import Control.Monad (foldM)
13import Control.Monad.Except (liftIO)
13import Control.Monad.Except (liftIO)
14import qualified Data.ByteString as BS
14import qualified Data.ByteString as BS
15import qualified Data.Graph as Graph
15import qualified Data.Graph as Graph
16−import qualified Data.List.NonEmpty as NonEmpty
17−import Data.List.NonEmpty (NonEmpty((:|)))
18import qualified Data.Map as Map
16import qualified Data.Map as Map
19import qualified Data.Set as Set
17import qualified Data.Set as Set
@@ -73,14 +71,13 @@ crawl summary args =
73 let graph = initWorkGraph (Args.Pkg names) Map.empty
71 let graph = initWorkGraph (Args.Pkg names) Map.empty
74 depthFirstSearch summary roots graph
72 depthFirstSearch summary roots graph
76− Args.Roots (path :| []) ->
74+ Args.Roots path [] ->
77 crawlHelp summary =<< Header.readOneFile summary path
75 crawlHelp summary =<< Header.readOneFile summary path
79− Args.Roots paths ->
77+ Args.Roots path paths ->
80− do headers <- Header.readManyFiles summary paths
78+ do (h,hs) <- Header.readManyFiles summary path paths
81− let names = NonEmpty.map fst headers
82− let unvisited = concatMap toUnvisited (NonEmpty.toList headers)
79+ let unvisited = concatMap toUnvisited (h:hs)
83− let graph = initWorkGraph (Args.Roots names) (Map.fromList (NonEmpty.toList headers))
80+ let graph = initWorkGraph (Args.Roots (fst h) (map fst hs)) (Map.fromList (h:hs))
84 depthFirstSearch summary unvisited graph
81 depthFirstSearch summary unvisited graph
86 toUnvisited (name, Header.Info path _ _ deps) =
83 toUnvisited (name, Header.Info path _ _ deps) =
@@ -96,10 +93,9 @@ crawlFromSource summary@(Summary _ project _ _ _) source =
96crawlHelp :: Summary -> ( Maybe Module.Raw, Header.Info ) -> Task.Task Result
93crawlHelp :: Summary -> ( Maybe Module.Raw, Header.Info ) -> Task.Task Result
97crawlHelp summary ( maybeName, info@(Header.Info path _ _ deps) ) =
94crawlHelp summary ( maybeName, info@(Header.Info path _ _ deps) ) =
98 do let name = maybe "Main" id maybeName
95 do let name = maybe "Main" id maybeName
99− let args = Args.Roots (name :| [])
100 let toUnvisited dep = Unvisited (maybe (E.File path) (E.Module path) maybeName) dep
96 let toUnvisited dep = Unvisited (maybe (E.File path) (E.Module path) maybeName) dep
101 let roots = map toUnvisited deps
97 let roots = map toUnvisited deps
102− let graph = initWorkGraph args (Map.singleton name info)
98+ let graph = initWorkGraph (Args.Roots name []) (Map.singleton name info)
103 depthFirstSearch summary roots graph
99 depthFirstSearch summary roots graph