File tree Expand file tree Collapse file tree 7 files changed +34
-6
lines changed
src/Distribution/Client/Init
tests/UnitTests/Distribution/Client/Init Expand file tree Collapse file tree 7 files changed +34
-6
lines changed Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ module Distribution.Client.Init.Defaults
2323 , defaultLicenseIds
2424 , defaultMainIs
2525 , defaultChangelog
26+ , defaultReadme
2627 , defaultCategories
2728 , defaultInitFlags
2829 , defaultLanguage
@@ -75,6 +76,9 @@ defaultPackageType = Executable
7576defaultChangelog :: FilePath
7677defaultChangelog = " CHANGELOG.md"
7778
79+ defaultReadme :: FilePath
80+ defaultReadme = " README.md"
81+
7882defaultLicense :: CabalSpecVersion -> SpecLicense
7983defaultLicense csv
8084 | csv < CabalSpecV2_2 = SpecLicense $ Right AllRightsReserved
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ module Distribution.Client.Init.FileCreators
1818 ( -- * Commands
1919 writeProject
2020 , writeLicense
21+ , writeReadme
2122 , writeChangeLog
2223 , prepareLibTarget
2324 , prepareExeTarget
@@ -70,6 +71,7 @@ writeProject (ProjectSettings opts pkgDesc libTarget exeTarget testTarget)
7071
7172 writeLicense opts pkgDesc
7273 writeChangeLog opts pkgDesc
74+ writeReadme opts pkgDesc
7375
7476 let pkgFields = mkPkgDescription opts pkgDesc
7577 commonStanza = mkCommonStanza opts
@@ -240,6 +242,28 @@ writeChangeLog opts pkgDesc
240242 go =
241243 void $ writeFileSafe opts defaultChangelog changeLog
242244
245+ writeReadme :: Interactive m => WriteOpts -> PkgDescription -> m ()
246+ writeReadme opts pkgDesc
247+ | Just docs <- _pkgExtraDocFiles pkgDesc
248+ , defaultReadme `Set.member` docs =
249+ go
250+ | defaultReadme `elem` _pkgExtraSrcFiles pkgDesc = go
251+ | otherwise = return ()
252+ where
253+ readme =
254+ unlines
255+ [ " # " ++ prettyShow (_pkgName pkgDesc)
256+ , " "
257+ , " ## Build"
258+ , " "
259+ , " Run `$ cabal build` to build the project"
260+ , " ## Documentation"
261+ , " "
262+ , " Run `$ cabal haddock --open` to generate a reference for the API of the project."
263+ ]
264+ go =
265+ void $ writeFileSafe opts defaultReadme readme
266+
243267-- -------------------------------------------------------------------- --
244268-- Utilities
245269
Original file line number Diff line number Diff line change @@ -138,7 +138,7 @@ getExtraDocFiles :: Interactive m => InitFlags -> m (Maybe (Set String))
138138getExtraDocFiles =
139139 pure
140140 . Just
141- . flagElim (Set. singleton defaultChangelog) Set. fromList
141+ . flagElim (Set. fromList [ defaultChangelog, defaultReadme] ) Set. fromList
142142 . extraDoc
143143
144144-- | Ask whether the project builds a library or executable.
Original file line number Diff line number Diff line change @@ -101,7 +101,7 @@ guessExtraDocFiles flags = do
101101 return $
102102 Just $
103103 if null extraDocs
104- then Set. singleton defaultChangelog
104+ then Set. fromList [ defaultChangelog, defaultReadme]
105105 else Set. fromList extraDocs
106106
107107-- | Try to guess the package type from the files in the package directory,
Original file line number Diff line number Diff line change @@ -112,7 +112,7 @@ createProject v pkgIx _srcDb initFlags = do
112112genSimplePkgDesc :: Interactive m => InitFlags -> m PkgDescription
113113genSimplePkgDesc flags = mkPkgDesc <$> currentDirPkgName
114114 where
115- defaultExtraDoc = Just $ Set. singleton defaultChangelog
115+ defaultExtraDoc = Just $ Set. fromList [ defaultChangelog, defaultReadme]
116116
117117 extractExtraDoc [] = defaultExtraDoc
118118 extractExtraDoc fs = Just $ Set. fromList fs
Original file line number Diff line number Diff line change @@ -627,7 +627,7 @@ createProjectTest pkgIx srcDb =
627627 flags =
628628 emptyFlags
629629 { cabalVersion = Flag CabalSpecV1_10
630- , extraDoc = Flag [defaultChangelog]
630+ , extraDoc = Flag [defaultChangelog, defaultReadme ]
631631 , extraSrc = Flag [" README.md" ]
632632 }
633633
@@ -650,7 +650,7 @@ createProjectTest pkgIx srcDb =
650650 _pkgHomePage desc @?= " qux.com"
651651 _pkgSynopsis desc @?= " Qux's package"
652652 _pkgCategory desc @?= " Control"
653- _pkgExtraSrcFiles desc @?= Set. fromList [defaultChangelog, " README.md " ]
653+ _pkgExtraSrcFiles desc @?= Set. fromList [defaultChangelog, defaultReadme ]
654654 _pkgExtraDocFiles desc @?= Nothing
655655
656656 _libSourceDirs lib @?= [" src" ]
Original file line number Diff line number Diff line change @@ -168,7 +168,7 @@ simplePkgDesc pkgName =
168168 " "
169169 " "
170170 mempty
171- (Just $ Set. singleton defaultChangelog)
171+ (Just $ Set. fromList [defaultReadme, defaultChangelog] )
172172
173173simpleLibTarget :: [Dependency ] -> LibTarget
174174simpleLibTarget baseDep =
You can’t perform that action at this time.
0 commit comments