1+ {-# LANGUAGE ApplicativeDo #-}
12{-# LANGUAGE MultiWayIf #-}
23{-# LANGUAGE PatternSynonyms #-}
3-
4- -----------------------------------------------------------------------------
5-
6- -----------------------------------------------------------------------------
4+ {-# LANGUAGE RecordWildCards #-}
75
86-- |
97-- Module : Distribution.Client.Init.Command
@@ -192,19 +190,19 @@ genPkgDescription
192190 -> SourcePackageDb
193191 -> m PkgDescription
194192genPkgDescription flags' srcDb = do
195- csv <- cabalVersionPrompt flags'
196- let flags = flags'{cabalVersion = Flag csv }
197- PkgDescription csv
198- <$> packageNamePrompt srcDb flags
199- <*> versionPrompt flags
200- <*> licensePrompt flags
201- <*> authorPrompt flags
202- <*> emailPrompt flags
203- <*> homepagePrompt flags
204- <*> synopsisPrompt flags
205- <*> categoryPrompt flags
206- <*> getExtraSrcFiles flags
207- <*> getExtraDocFiles flags
193+ _pkgCabalVersion <- cabalVersionPrompt flags'
194+ let flags = flags'{cabalVersion = Flag _pkgCabalVersion }
195+ _pkgName <- packageNamePrompt srcDb flags
196+ _pkgVersion <- versionPrompt flags
197+ _pkgLicense <- licensePrompt flags
198+ _pkgAuthor <- authorPrompt flags
199+ _pkgEmail <- emailPrompt flags
200+ _pkgHomePage <- homepagePrompt flags
201+ _pkgSynopsis <- synopsisPrompt flags
202+ _pkgCategory <- categoryPrompt flags
203+ _pkgExtraSrcFiles <- getExtraSrcFiles flags
204+ _pkgExtraDocFiles <- getExtraDocFiles flags
205+ pure PkgDescription { .. }
208206
209207-- | Extract flags relevant to a library target and interactively
210208-- generate a 'LibTarget' object for creation. If the user specifies
@@ -215,15 +213,15 @@ genLibTarget
215213 => InitFlags
216214 -> InstalledPackageIndex
217215 -> m LibTarget
218- genLibTarget flags pkgs =
219- LibTarget
220- <$> srcDirsPrompt flags
221- <*> languagePrompt flags " library "
222- <*> getExposedModules flags
223- <*> getOtherModules flags
224- <*> getOtherExts flags
225- <*> dependenciesPrompt pkgs flags
226- <*> getBuildTools flags
216+ genLibTarget flags pkgs = do
217+ _libSourceDirs <- srcDirsPrompt flags
218+ _libLanguage <- languagePrompt flags " library "
219+ _libExposedModules <- getExposedModules flags
220+ _libOtherModules <- getOtherModules flags
221+ _libOtherExts <- getOtherExts flags
222+ _libDependencies <- dependenciesPrompt pkgs flags
223+ _libBuildTools <- getBuildTools flags
224+ pure LibTarget { .. }
227225
228226-- | Extract flags relevant to a executable target and interactively
229227-- generate a 'ExeTarget' object for creation. If the user specifies
@@ -234,15 +232,15 @@ genExeTarget
234232 => InitFlags
235233 -> InstalledPackageIndex
236234 -> m ExeTarget
237- genExeTarget flags pkgs =
238- ExeTarget
239- <$> mainFilePrompt flags
240- <*> appDirsPrompt flags
241- <*> languagePrompt flags " executable "
242- <*> getOtherModules flags
243- <*> getOtherExts flags
244- <*> dependenciesPrompt pkgs flags
245- <*> getBuildTools flags
235+ genExeTarget flags pkgs = do
236+ _exeMainIs <- mainFilePrompt flags
237+ _exeApplicationDirs <- appDirsPrompt flags
238+ _exeLanguage <- languagePrompt flags " executable "
239+ _exeOtherModules <- getOtherModules flags
240+ _exeOtherExts <- getOtherExts flags
241+ _exeDependencies <- dependenciesPrompt pkgs flags
242+ _exeBuildTools <- getBuildTools flags
243+ pure ExeTarget { .. }
246244
247245-- | Extract flags relevant to a test target and interactively
248246-- generate a 'TestTarget' object for creation. If the user specifies
@@ -261,16 +259,15 @@ genTestTarget flags pkgs = initializeTestSuitePrompt flags >>= go
261259 where
262260 go initialized
263261 | not initialized = return Nothing
264- | otherwise =
265- fmap Just $
266- TestTarget
267- <$> testMainPrompt
268- <*> testDirsPrompt flags
269- <*> languagePrompt flags " test suite"
270- <*> getOtherModules flags
271- <*> getOtherExts flags
272- <*> dependenciesPrompt pkgs flags
273- <*> getBuildTools flags
262+ | otherwise = do
263+ _testMainIs <- testMainPrompt
264+ _testDirs <- testDirsPrompt flags
265+ _testLanguage <- languagePrompt flags " test suite"
266+ _testOtherModules <- getOtherModules flags
267+ _testOtherExts <- getOtherExts flags
268+ _testDependencies <- dependenciesPrompt pkgs flags
269+ _testBuildTools <- getBuildTools flags
270+ pure $ Just TestTarget {.. }
274271
275272-- -------------------------------------------------------------------- --
276273-- Prompts
0 commit comments