on master help sign in
Get rid of Stuff.Verify
3c02e30Evan Czaplicki
builder/src/Stuff/Verify.hsdeleted−119
@@ -1,119 +0,0 @@
1−{-# OPTIONS_GHC -Wall #-}
2−module Stuff.Verify
3− ( verify
4− )
5− where
6−
7−
8−import Control.Monad (liftM2, liftM4)
9−import Data.Binary
10−import Data.Map (Map)
11−
12−import qualified Deps.Verify as Verify
13−import qualified Elm.Interface as I
14−import Elm.Package (Name, Version)
15−import qualified Elm.Project.Json as Project
16−import qualified Elm.Project.Constraint as Con
17−import qualified Elm.Project.Summary as Summary
18−import qualified File.IO as IO
19−import qualified Reporting.Task as Task
20−import qualified Stuff.Paths as Path
21−
22−
23−
24−-- VERIFY
25−
26−
27−verify :: FilePath -> Project.Project -> Task.Task Summary.Summary
28−verify root project =
29− do exists <- IO.exists Path.summary
30− if exists
31− then
32− do (MiniSummary deps exposed ifaces graph) <- IO.readBinary Path.summary
33− if isValidMiniSummary deps project
34− then
35− return (Summary.Summary root project exposed ifaces graph)
36− else
37− do IO.remove Path.summary
38− cacheSummary root project
39− else
40− cacheSummary root project
41−
42−
43−cacheSummary :: FilePath -> Project.Project -> Task.Task Summary.Summary
44−cacheSummary root project =
45− do summary@(Summary.Summary _ _ exposed ifaces graph) <- Verify.verify root project
46− IO.writeBinary Path.summary (MiniSummary (getDeps project) exposed ifaces graph)
47− return summary
48−
49−
50−
51−-- MINI SUMMARY
52−
53−
54−data MiniSummary =
55− MiniSummary
56− { _deps :: ProjectDeps
57− , _exposed :: Summary.ExposedModules
58− , _ifaces :: I.Interfaces
59− , _depsGraph :: Summary.DepsGraph
60− }
61−
62−
63−data ProjectDeps
64− = App (Map Name Version) (Map Name Version) (Map Name Version) (Map Name Version)
65− | Pkg (Map Name Con.Constraint) (Map Name Con.Constraint)
66−
67−
68−getDeps :: Project.Project -> ProjectDeps
69−getDeps project =
70− case project of
71− Project.App (Project.AppInfo _ _ depsDirect depsTrans testDirect testTrans) ->
72− App depsDirect depsTrans testDirect testTrans
73−
74− Project.Pkg (Project.PkgInfo _ _ _ _ _ direct test _) ->
75− Pkg direct test
76−
77−
78−isValidMiniSummary :: ProjectDeps -> Project.Project -> Bool
79−isValidMiniSummary deps project =
80− case deps of
81− App a b c d ->
82− case project of
83− Project.Pkg _ ->
84− False
85−
86− Project.App (Project.AppInfo _ _ a2 b2 c2 d2) ->
87− a == a2 && b == b2 && c == c2 && d == d2
88−
89− Pkg a b ->
90− case project of
91− Project.Pkg (Project.PkgInfo _ _ _ _ _ a2 b2 _) ->
92− a == a2 && b == b2
93−
94− Project.App _ ->
95− False
96−
97−
98−
99−-- BINARY
100−
101−
102−instance Binary MiniSummary where
103− get = liftM4 MiniSummary get get get get
104− put (MiniSummary a b c d) = put a >> put b >> put c >> put d
105−
106−
107−
108−instance Binary ProjectDeps where
109− put deps =
110− case deps of
111− App a b c d -> putWord8 0 >> put a >> put b >> put c >> put d
112− Pkg a b -> putWord8 1 >> put a >> put b
113−
114− get =
115− do n <- getWord8
116− case n of
117− 0 -> liftM4 App get get get get
118− 1 -> liftM2 Pkg get get
119− _ -> error "binary encoding of ProjectDeps was corrupted"