Skip to content

Commit e3d071c

Browse files
committed
Reformat, improve Haddock documentation
1 parent d9c5fb7 commit e3d071c

File tree

1 file changed

+85
-72
lines changed

1 file changed

+85
-72
lines changed

src/Stack/Constants/Config.hs

Lines changed: 85 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,24 @@
33
{-# LANGUAGE TemplateHaskell #-}
44

55
module Stack.Constants.Config
6-
( distDirFromDir
7-
, rootDistDirFromDir
8-
, setupConfigFromDir
9-
, workDirFromDir
10-
, distRelativeDir
11-
, imageStagingDir
12-
, projectDockerSandboxDir
6+
( buildCachesDir
137
, configCabalMod
14-
, configSetupConfigMod
158
, configPackageProjectRoot
16-
, buildCachesDir
17-
, testSuccessFile
18-
, testBuiltFile
19-
, hpcRelativeDir
9+
, configSetupConfigMod
10+
, distDirFromDir
11+
, distRelativeDir
12+
, ghciDirL
2013
, hpcDirFromDir
14+
, hpcRelativeDir
15+
, imageStagingDir
2116
, objectInterfaceDirL
22-
, ghciDirL
17+
, projectDockerSandboxDir
18+
, rootDistDirFromDir
19+
, setupConfigFromDir
2320
, templatesDir
21+
, testBuiltFile
22+
, testSuccessFile
23+
, workDirFromDir
2424
) where
2525

2626
import Path ( (</>), mkRelDir, mkRelFile, parseRelDir )
@@ -47,140 +47,153 @@ ghciDirL = to $ \env -> -- FIXME is this idiomatic lens code?
4747
root = view projectRootL env
4848
in root </> workDir </> relDirGhci
4949

50-
-- | The directory containing the files used for dirtiness check of source files.
51-
buildCachesDir :: (MonadThrow m, MonadReader env m, HasEnvConfig env)
52-
=> Path Abs Dir -- ^ Package directory.
53-
-> m (Path Abs Dir)
50+
-- | The directory containing the files used for dirtiness check of source
51+
-- files.
52+
buildCachesDir ::
53+
(HasEnvConfig env, MonadReader env m, MonadThrow m)
54+
=> Path Abs Dir -- ^ Package directory.
55+
-> m (Path Abs Dir)
5456
buildCachesDir dir =
5557
fmap
5658
(</> $(mkRelDir "stack-build-caches"))
5759
(distDirFromDir dir)
5860

59-
-- | The filename used to mark tests as having succeeded
60-
testSuccessFile :: (MonadThrow m, MonadReader env m, HasEnvConfig env)
61-
=> Path Abs Dir -- ^ Package directory
62-
-> m (Path Abs File)
61+
-- | The filename used to mark tests as having succeeded.
62+
testSuccessFile ::
63+
(HasEnvConfig env, MonadReader env m, MonadThrow m)
64+
=> Path Abs Dir -- ^ Package directory
65+
-> m (Path Abs File)
6366
testSuccessFile dir =
6467
fmap
6568
(</> $(mkRelFile "stack-test-success"))
6669
(distDirFromDir dir)
6770

68-
-- | The filename used to mark tests as having built
69-
testBuiltFile :: (MonadThrow m, MonadReader env m, HasEnvConfig env)
70-
=> Path Abs Dir -- ^ Package directory
71-
-> m (Path Abs File)
71+
-- | The filename used to mark tests as having built.
72+
testBuiltFile ::
73+
(HasEnvConfig env, MonadReader env m, MonadThrow m)
74+
=> Path Abs Dir -- ^ Package directory
75+
-> m (Path Abs File)
7276
testBuiltFile dir =
7377
fmap
7478
(</> $(mkRelFile "stack-test-built"))
7579
(distDirFromDir dir)
7680

77-
-- | The filename used for modification check of .cabal
78-
configCabalMod :: (MonadThrow m, MonadReader env m, HasEnvConfig env)
79-
=> Path Abs Dir -- ^ Package directory.
80-
-> m (Path Abs File)
81+
-- | The filename used for modification check of a Cabal file.
82+
configCabalMod ::
83+
(HasEnvConfig env, MonadReader env m, MonadThrow m)
84+
=> Path Abs Dir -- ^ Package directory.
85+
-> m (Path Abs File)
8186
configCabalMod dir =
8287
fmap
8388
(</> $(mkRelFile "stack-cabal-mod"))
8489
(distDirFromDir dir)
8590

86-
-- | The filename used for modification check of setup-config
87-
configSetupConfigMod :: (MonadThrow m, MonadReader env m, HasEnvConfig env)
88-
=> Path Abs Dir -- ^ Package directory.
89-
-> m (Path Abs File)
91+
-- | The filename used for modification check of setup-config.
92+
configSetupConfigMod ::
93+
(HasEnvConfig env, MonadReader env m, MonadThrow m)
94+
=> Path Abs Dir -- ^ Package directory.
95+
-> m (Path Abs File)
9096
configSetupConfigMod dir =
9197
fmap
9298
(</> $(mkRelFile "stack-setup-config-mod"))
9399
(distDirFromDir dir)
94100

95-
-- | The filename used for the project root from the last build of a package
96-
configPackageProjectRoot :: (MonadThrow m, MonadReader env m, HasEnvConfig env)
97-
=> Path Abs Dir -- ^ Package directory.
98-
-> m (Path Abs File)
101+
-- | The filename used for the project root from the last build of a package.
102+
configPackageProjectRoot ::
103+
(HasEnvConfig env, MonadReader env m, MonadThrow m)
104+
=> Path Abs Dir -- ^ Package directory.
105+
-> m (Path Abs File)
99106
configPackageProjectRoot dir =
100107
fmap
101108
(</> $(mkRelFile "stack-project-root"))
102109
(distDirFromDir dir)
103110

104111
-- | Directory for HPC work.
105112
hpcDirFromDir ::
106-
(MonadThrow m, MonadReader env m, HasEnvConfig env)
107-
=> Path Abs Dir -- ^ Package directory.
108-
-> m (Path Abs Dir)
113+
(HasEnvConfig env, MonadReader env m, MonadThrow m)
114+
=> Path Abs Dir -- ^ Package directory.
115+
-> m (Path Abs Dir)
109116
hpcDirFromDir fp =
110117
fmap (fp </>) hpcRelativeDir
111118

112119
-- | Relative location of directory for HPC work.
113-
hpcRelativeDir :: (MonadThrow m, MonadReader env m, HasEnvConfig env)
114-
=> m (Path Rel Dir)
120+
hpcRelativeDir ::
121+
(HasEnvConfig env, MonadReader env m, MonadThrow m)
122+
=> m (Path Rel Dir)
115123
hpcRelativeDir =
116124
fmap (</> relDirHpc) distRelativeDir
117125

118-
-- | Package's setup-config storing Cabal configuration
119-
setupConfigFromDir :: (MonadThrow m, MonadReader env m, HasEnvConfig env)
120-
=> Path Abs Dir
121-
-> m (Path Abs File)
126+
-- | Package's setup-config storing Cabal configuration.
127+
setupConfigFromDir ::
128+
(HasEnvConfig env, MonadReader env m, MonadThrow m)
129+
=> Path Abs Dir
130+
-> m (Path Abs File)
122131
setupConfigFromDir fp = do
123-
dist <- distDirFromDir fp
124-
pure $ dist </> $(mkRelFile "setup-config")
132+
dist <- distDirFromDir fp
133+
pure $ dist </> $(mkRelFile "setup-config")
125134

126135
-- | Package's build artifacts directory.
127-
distDirFromDir :: (MonadThrow m, MonadReader env m, HasEnvConfig env)
128-
=> Path Abs Dir
129-
-> m (Path Abs Dir)
136+
distDirFromDir ::
137+
(HasEnvConfig env, MonadReader env m, MonadThrow m)
138+
=> Path Abs Dir
139+
-> m (Path Abs Dir)
130140
distDirFromDir fp =
131141
fmap (fp </>) distRelativeDir
132142

133143
-- | The directory containing all dist directories, including all
134-
-- different GHC/Cabal combos.
144+
-- different platform/compiler combinations.
135145
rootDistDirFromDir ::
136-
(MonadReader env m, HasConfig env)
146+
(HasConfig env, MonadReader env m)
137147
=> Path Abs Dir
138148
-> m (Path Abs Dir)
139149
rootDistDirFromDir fp =
140150
fmap (fp </>) rootDistRelativeDir
141151

142152
-- | Relative directory to the top dist directory, containing
143-
-- individual GHC/Cabal combo as subdirs.
153+
-- individual platform/compiler combinations as subdirs.
144154
rootDistRelativeDir ::
145-
(MonadReader env m, HasConfig env)
155+
(HasConfig env, MonadReader env m)
146156
=> m (Path Rel Dir)
147157
rootDistRelativeDir = do
148-
workDir <- view workDirL
149-
pure $ workDir </> relDirDist
158+
workDir <- view workDirL
159+
pure $ workDir </> relDirDist
150160

151161
-- | Package's working directory.
152-
workDirFromDir :: (MonadReader env m, HasConfig env)
153-
=> Path Abs Dir
154-
-> m (Path Abs Dir)
162+
workDirFromDir ::
163+
(HasConfig env, MonadReader env m)
164+
=> Path Abs Dir
165+
-> m (Path Abs Dir)
155166
workDirFromDir fp = view $ workDirL.to (fp </>)
156167

157168
-- | Directory for project templates.
158169
templatesDir :: Config -> Path Abs Dir
159170
templatesDir config = view stackRootL config </> $(mkRelDir "templates")
160171

161172
-- | Relative location of build artifacts.
162-
distRelativeDir :: (MonadThrow m, MonadReader env m, HasEnvConfig env)
163-
=> m (Path Rel Dir)
173+
distRelativeDir ::
174+
(HasEnvConfig env, MonadReader env m, MonadThrow m)
175+
=> m (Path Rel Dir)
164176
distRelativeDir = do
165-
compilerVer <- view compilerVersionL
166-
platform <- platformGhcRelDir
167-
-- Cabal version
168-
envDir <-
169-
parseRelDir $ compilerVersionString compilerVer
170-
platformAndCabal <- useShaPathOnWindows (platform </> envDir)
171-
allDist <- rootDistRelativeDir
172-
pure $ allDist </> platformAndCabal
177+
compilerVer <- view compilerVersionL
178+
platform <- platformGhcRelDir
179+
-- Compiler version: allows build artefacts to be distinguished by compiler
180+
-- version, which will also distinguish one Cabal version from another.
181+
compilerDir <- parseRelDir $ compilerVersionString compilerVer
182+
platformAndCompiler <- useShaPathOnWindows (platform </> compilerDir)
183+
allDist <- rootDistRelativeDir
184+
pure $ allDist </> platformAndCompiler
173185

174186
-- | Docker sandbox from project root.
175-
projectDockerSandboxDir :: (MonadReader env m, HasConfig env)
187+
projectDockerSandboxDir :: (HasConfig env, MonadReader env m)
176188
=> Path Abs Dir -- ^ Project root
177189
-> m (Path Abs Dir) -- ^ Docker sandbox
178190
projectDockerSandboxDir projectRoot = do
179191
workDir <- view workDirL
180192
pure $ projectRoot </> workDir </> $(mkRelDir "docker/")
181193

182194
-- | Image staging dir from project root.
183-
imageStagingDir :: (MonadReader env m, HasConfig env, MonadThrow m)
195+
imageStagingDir ::
196+
(HasConfig env, MonadReader env m, MonadThrow m)
184197
=> Path Abs Dir -- ^ Project root
185198
-> Int -- ^ Index of image
186199
-> m (Path Abs Dir) -- ^ Docker sandbox

0 commit comments

Comments
 (0)