Skip to content

Commit 765de7b

Browse files
committed
Make cabal-dev-scripts work with 8.4.2.
1 parent 72409b0 commit 765de7b

File tree

3 files changed

+28
-30
lines changed

3 files changed

+28
-30
lines changed

cabal-dev-scripts/cabal-dev-scripts.cabal

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ executable gen-extra-source-files
1616
main-is: GenExtraSourceFiles.hs
1717
hs-source-dirs: src
1818
build-depends:
19-
base >=4.10 && <4.11,
20-
Cabal >=2.0 && <2.4,
19+
base >=4.10 && <4.12,
20+
Cabal >=2.2 && <2.4,
21+
bytestring,
2122
directory,
2223
filepath,
2324
process
@@ -27,11 +28,11 @@ executable gen-spdx
2728
main-is: GenSPDX.hs
2829
hs-source-dirs: src
2930
build-depends:
30-
base >=4.10 && <4.11,
31+
base >=4.10 && <4.12,
3132
aeson >=1.2.3.0 && <1.3,
3233
bytestring,
3334
containers,
34-
lens >=4.15.4 && <4.16,
35+
lens >=4.15.4 && <4.17,
3536
microstache >=1.0.1.1 && <1.1,
3637
optparse-applicative >=0.13 && <0.15,
3738
text
@@ -41,11 +42,11 @@ executable gen-spdx-exc
4142
main-is: GenSPDXExc.hs
4243
hs-source-dirs: src
4344
build-depends:
44-
base >=4.10 && <4.11,
45+
base >=4.10 && <4.12,
4546
aeson >=1.2.3.0 && <1.3,
4647
bytestring,
4748
containers,
48-
lens >=4.15.4 && <4.16,
49+
lens >=4.15.4 && <4.17,
4950
microstache >=1.0.1.1 && <1.1,
5051
optparse-applicative >=0.13 && <0.15,
5152
text

cabal-dev-scripts/src/GenExtraSourceFiles.hs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
{-# LANGUAGE OverloadedStrings #-}
2+
13
import qualified Distribution.ModuleName as ModuleName
24
import Distribution.PackageDescription
3-
import Distribution.PackageDescription.Parse
4-
(ParseResult (..), parseGenericPackageDescription)
5+
import Distribution.PackageDescription.Parsec
6+
(parseGenericPackageDescription, runParseResult)
57
import Distribution.Verbosity (silent)
68

79
import Control.Monad (liftM, filterM)
@@ -11,18 +13,22 @@ import System.Environment (getArgs, getProgName)
1113
import System.FilePath ((</>), takeDirectory, takeExtension, takeFileName)
1214
import System.Process (readProcess)
1315

14-
import qualified System.IO as IO
16+
17+
import qualified Data.ByteString as BS
18+
import qualified Data.ByteString.Char8 as BS8
19+
import qualified System.IO as IO
1520

1621
main' :: FilePath -> IO ()
1722
main' fp' = do
1823
fp <- canonicalizePath fp'
1924
setCurrentDirectory (takeDirectory fp)
2025

2126
-- Read cabal file, so we can determine test modules
22-
contents <- strictReadFile fp
23-
cabal <- case parseGenericPackageDescription contents of
24-
ParseOk _ x -> pure x
25-
ParseFailed errs -> fail (show errs)
27+
contents <- BS.readFile fp
28+
cabal <-
29+
case snd . runParseResult . parseGenericPackageDescription $ contents of
30+
Right x -> pure x
31+
Left (_mver, errs) -> fail (show errs)
2632

2733
-- We skip some files
2834
testModuleFiles <- getOtherModulesFiles cabal
@@ -40,13 +46,16 @@ main' fp' = do
4046
let files = files3
4147

4248
-- Read current file
43-
let inputLines = lines contents
44-
linesBefore = takeWhile (/= topLine) inputLines
45-
linesAfter = dropWhile (/= bottomLine) inputLines
49+
let topLine' = BS8.pack topLine
50+
bottomLine' = BS8.pack bottomLine
51+
inputLines = BS8.lines contents
52+
linesBefore = takeWhile (/= topLine') inputLines
53+
linesAfter = dropWhile (/= bottomLine') inputLines
4654

4755
-- Output
48-
let outputLines = linesBefore ++ [topLine] ++ map (" " ++) files ++ linesAfter
49-
writeFile fp (unlines outputLines)
56+
let outputLines = linesBefore ++ [topLine']
57+
++ map ((<>) " " . BS8.pack) files ++ linesAfter
58+
BS.writeFile fp (BS8.unlines outputLines)
5059

5160

5261
topLine, bottomLine :: String
@@ -106,12 +115,3 @@ main = do
106115
putStrLn $ "Usage: " ++ progName ++ " FILE"
107116
putStrLn $ " where FILE is Cabal.cabal, cabal-testsuite.cabal, "
108117
++ "or cabal-install.cabal"
109-
110-
strictReadFile :: FilePath -> IO String
111-
strictReadFile fp = do
112-
handle <- IO.openFile fp IO.ReadMode
113-
contents <- get handle
114-
IO.hClose handle
115-
return contents
116-
where
117-
get h = IO.hGetContents h >>= \s -> length s `seq` return s

update-cabal-files.sh

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)