1
1
{-# LANGUAGE NoImplicitPrelude #-}
2
2
{-# LANGUAGE DeriveGeneric #-}
3
3
{-# LANGUAGE MultiParamTypeClasses #-}
4
- {-# LANGUAGE TemplateHaskell #-}
5
4
{-# LANGUAGE TupleSections #-}
6
5
{-# LANGUAGE ConstraintKinds #-}
7
6
{-# LANGUAGE OverloadedStrings #-}
@@ -42,18 +41,17 @@ import Data.Char (ord)
42
41
import qualified Data.Map as M
43
42
import qualified Data.Set as Set
44
43
import qualified Data.Store as Store
45
- import Data.Store.VersionTagged
46
44
import qualified Data.Text as T
47
45
import Path
48
46
import Path.IO
49
47
import Stack.Constants
50
48
import Stack.Constants.Config
49
+ import Stack.StoreTH
51
50
import Stack.Types.Build
52
51
import Stack.Types.Compiler
53
52
import Stack.Types.Config
54
53
import Stack.Types.GhcPkgId
55
54
import Stack.Types.NamedComponent
56
- import Stack.Types.Package
57
55
import qualified System.FilePath as FP
58
56
59
57
-- | Directory containing files to mark an executable as installed
@@ -124,17 +122,17 @@ tryGetBuildCache :: HasEnvConfig env
124
122
=> Path Abs Dir
125
123
-> NamedComponent
126
124
-> RIO env (Maybe (Map FilePath FileCacheInfo ))
127
- tryGetBuildCache dir component = liftM (fmap buildCacheTimes) . $ (versionedDecodeFile buildCacheVC) =<< buildCacheFile dir component
125
+ tryGetBuildCache dir component = liftM (fmap buildCacheTimes) . decodeBuildCache =<< buildCacheFile dir component
128
126
129
127
-- | Try to read the dirtiness cache for the given package directory.
130
128
tryGetConfigCache :: HasEnvConfig env
131
129
=> Path Abs Dir -> RIO env (Maybe ConfigCache )
132
- tryGetConfigCache dir = $ (versionedDecodeFile configCacheVC) =<< configCacheFile dir
130
+ tryGetConfigCache dir = decodeConfigCache =<< configCacheFile dir
133
131
134
132
-- | Try to read the mod time of the cabal file from the last build
135
133
tryGetCabalMod :: HasEnvConfig env
136
134
=> Path Abs Dir -> RIO env (Maybe ModTime )
137
- tryGetCabalMod dir = $ (versionedDecodeFile modTimeVC) =<< configCabalMod dir
135
+ tryGetCabalMod dir = decodeModTime =<< configCabalMod dir
138
136
139
137
-- | Write the dirtiness cache for this package's files.
140
138
writeBuildCache :: HasEnvConfig env
@@ -143,7 +141,7 @@ writeBuildCache :: HasEnvConfig env
143
141
-> Map FilePath FileCacheInfo -> RIO env ()
144
142
writeBuildCache dir component times = do
145
143
fp <- buildCacheFile dir component
146
- $ (versionedEncodeFile buildCacheVC) fp BuildCache
144
+ encodeBuildCache fp BuildCache
147
145
{ buildCacheTimes = times
148
146
}
149
147
@@ -154,7 +152,7 @@ writeConfigCache :: HasEnvConfig env
154
152
-> RIO env ()
155
153
writeConfigCache dir x = do
156
154
fp <- configCacheFile dir
157
- $ (versionedEncodeFile configCacheVC) fp x
155
+ encodeConfigCache fp x
158
156
159
157
-- | See 'tryGetCabalMod'
160
158
writeCabalMod :: HasEnvConfig env
@@ -163,7 +161,7 @@ writeCabalMod :: HasEnvConfig env
163
161
-> RIO env ()
164
162
writeCabalMod dir x = do
165
163
fp <- configCabalMod dir
166
- $ (versionedEncodeFile modTimeVC) fp x
164
+ encodeModTime fp x
167
165
168
166
-- | Delete the caches for the project.
169
167
deleteCaches :: (MonadIO m , MonadReader env m , HasEnvConfig env , MonadThrow m )
@@ -193,7 +191,7 @@ tryGetFlagCache :: HasEnvConfig env
193
191
-> RIO env (Maybe ConfigCache )
194
192
tryGetFlagCache gid = do
195
193
fp <- flagCacheFile gid
196
- $ (versionedDecodeFile configCacheVC) fp
194
+ decodeConfigCache fp
197
195
198
196
writeFlagCache :: HasEnvConfig env
199
197
=> Installed
@@ -202,23 +200,23 @@ writeFlagCache :: HasEnvConfig env
202
200
writeFlagCache gid cache = do
203
201
file <- flagCacheFile gid
204
202
ensureDir (parent file)
205
- $ (versionedEncodeFile configCacheVC) file cache
203
+ encodeConfigCache file cache
206
204
207
205
-- | Mark a test suite as having succeeded
208
206
setTestSuccess :: HasEnvConfig env
209
207
=> Path Abs Dir
210
208
-> RIO env ()
211
209
setTestSuccess dir = do
212
210
fp <- testSuccessFile dir
213
- $ (versionedEncodeFile testSuccessVC) fp True
211
+ encodeTestSuccess fp True
214
212
215
213
-- | Mark a test suite as not having succeeded
216
214
unsetTestSuccess :: HasEnvConfig env
217
215
=> Path Abs Dir
218
216
-> RIO env ()
219
217
unsetTestSuccess dir = do
220
218
fp <- testSuccessFile dir
221
- $ (versionedEncodeFile testSuccessVC) fp False
219
+ encodeTestSuccess fp False
222
220
223
221
-- | Check if the test suite already passed
224
222
checkTestSuccess :: HasEnvConfig env
@@ -227,7 +225,7 @@ checkTestSuccess :: HasEnvConfig env
227
225
checkTestSuccess dir =
228
226
liftM
229
227
(fromMaybe False )
230
- ($ (versionedDecodeFile testSuccessVC) =<< testSuccessFile dir)
228
+ (decodeTestSuccess =<< testSuccessFile dir)
231
229
232
230
--------------------------------------
233
231
-- Precompiled Cache
@@ -315,7 +313,7 @@ writePrecompiledCache baseConfigOpts loc copts depIDs mghcPkgId sublibs exes = d
315
313
name <- parseRelFile $ T. unpack exe
316
314
relPath <- stackRootRelative $ bcoSnapInstallRoot baseConfigOpts </> bindirSuffix </> name
317
315
return $ toFilePath relPath
318
- $ (versionedEncodeFile precompiledCacheVC) file PrecompiledCache
316
+ encodePrecompiledCache file PrecompiledCache
319
317
{ pcLibrary = mlibpath
320
318
, pcSubLibs = sublibpaths
321
319
, pcExes = exes'
@@ -335,7 +333,7 @@ readPrecompiledCache :: forall env. HasEnvConfig env
335
333
-> RIO env (Maybe PrecompiledCache )
336
334
readPrecompiledCache loc copts depIDs = do
337
335
file <- precompiledCacheFile loc copts depIDs
338
- mcache <- $ (versionedDecodeFile precompiledCacheVC) file
336
+ mcache <- decodePrecompiledCache file
339
337
maybe (pure Nothing ) (fmap Just . mkAbs) mcache
340
338
where
341
339
-- Since commit ed9ccc08f327bad68dd2d09a1851ce0d055c0422,
0 commit comments