Skip to content

Commit babda2e

Browse files
committed
Implement extra-files
1 parent e7c9326 commit babda2e

File tree

4 files changed

+22
-0
lines changed

4 files changed

+22
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ library:
143143
| `build-type` | · | `Simple`, or `Custom` if `custom-setup` exists | Must be `Simple`, `Configure`, `Make`, or `Custom` | | |
144144
| `extra-source-files` | · | | Accepts [glob patterns](#file-globbing) | | |
145145
| `extra-doc-files` | · | | Accepts [glob patterns](#file-globbing) | | `0.21.2` |
146+
| `extra-files` | · | | Accepts [glob patterns](#file-globbing) | | `0.39.0` |
146147
| `data-files` | · | | Accepts [glob patterns](#file-globbing) | | |
147148
| `data-dir` | · | | | | |
148149
| `github` | `source-repository head` | | Accepts `owner/repo` or `owner/repo/subdir` | `github: foo/bar` |

src/Hpack/Config.hs

+6
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ package name version = Package {
160160
, packageFlags = []
161161
, packageExtraSourceFiles = []
162162
, packageExtraDocFiles = []
163+
, packageExtraFiles = []
163164
, packageDataFiles = []
164165
, packageDataDir = Nothing
165166
, packageSourceRepository = Nothing
@@ -602,6 +603,7 @@ data PackageConfig_ library executable = PackageConfig {
602603
, packageConfigFlags :: Maybe (Map String FlagSection)
603604
, packageConfigExtraSourceFiles :: Maybe (List FilePath)
604605
, packageConfigExtraDocFiles :: Maybe (List FilePath)
606+
, packageConfigExtraFiles :: Maybe (List FilePath)
605607
, packageConfigDataFiles :: Maybe (List FilePath)
606608
, packageConfigDataDir :: Maybe FilePath
607609
, packageConfigGithub :: Maybe GitHub
@@ -831,6 +833,7 @@ ensureRequiredCabalVersion inferredLicense pkg@Package{..} = pkg {
831833
makeVersion [2,2] <$ guard mustSPDX
832834
, makeVersion [1,24] <$ packageCustomSetup
833835
, makeVersion [1,18] <$ guard (not (null packageExtraDocFiles))
836+
, makeVersion [3,14] <$ guard (not (null packageExtraFiles))
834837
, packageLibrary >>= libraryCabalVersion
835838
, internalLibsCabalVersion packageInternalLibraries
836839
, executablesCabalVersion packageExecutables
@@ -1024,6 +1027,7 @@ data Package = Package {
10241027
, packageFlags :: [Flag]
10251028
, packageExtraSourceFiles :: [Path]
10261029
, packageExtraDocFiles :: [Path]
1030+
, packageExtraFiles :: [Path]
10271031
, packageDataFiles :: [Path]
10281032
, packageDataDir :: Maybe FilePath
10291033
, packageSourceRepository :: Maybe SourceRepository
@@ -1272,6 +1276,7 @@ toPackage_ dir (Product g PackageConfig{..}) = do
12721276

12731277
extraSourceFiles <- expandGlobs "extra-source-files" dir (fromMaybeList packageConfigExtraSourceFiles)
12741278
extraDocFiles <- expandGlobs "extra-doc-files" dir (fromMaybeList packageConfigExtraDocFiles)
1279+
extraFiles <- expandGlobs "extra-files" dir (fromMaybeList packageConfigExtraFiles)
12751280

12761281
let dataBaseDir = maybe dir (dir </>) packageConfigDataDir
12771282

@@ -1316,6 +1321,7 @@ toPackage_ dir (Product g PackageConfig{..}) = do
13161321
, packageFlags = flags
13171322
, packageExtraSourceFiles = extraSourceFiles
13181323
, packageExtraDocFiles = extraDocFiles
1324+
, packageExtraFiles = extraFiles
13191325
, packageDataFiles = dataFiles
13201326
, packageDataDir = packageConfigDataDir
13211327
, packageSourceRepository = sourceRepository

src/Hpack/Render.hs

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ renderPackageWith settings headerFieldsAlignment existingFieldOrder sectionsFiel
8484
Field "tested-with" $ CommaSeparatedList packageTestedWith
8585
, Field "extra-source-files" (renderPaths packageExtraSourceFiles)
8686
, Field "extra-doc-files" (renderPaths packageExtraDocFiles)
87+
, Field "extra-files" (renderPaths packageExtraFiles)
8788
, Field "data-files" (renderPaths packageDataFiles)
8889
] ++ maybe [] (return . Field "data-dir" . Literal) packageDataDir
8990

test/EndToEndSpec.hs

+14
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,20 @@ spec = around_ (inTempDirectoryNamed "my-package") $ do
638638
- "*.markdown"
639639
|] `shouldWarn` ["Specified pattern \"*.markdown\" for extra-doc-files does not match any files"]
640640

641+
describe "extra-files" $ do
642+
it "accepts a list of files" $ do
643+
touch "CHANGES.markdown"
644+
touch "README.markdown"
645+
[i|
646+
extra-files:
647+
- CHANGES.markdown
648+
- README.markdown
649+
|] `shouldRenderTo` (package [i|
650+
extra-files:
651+
CHANGES.markdown
652+
README.markdown
653+
|]) {packageCabalVersion = "3.14"}
654+
641655
describe "build-tools" $ do
642656
context "with known build tools" $ do
643657
context "when cabal-version < 2" $ do

0 commit comments

Comments
 (0)