on master help sign in
Optionally copy all cabal files to a directory
502e0d1Michael Snoyman
Stackage/Build.hs+1
@@ -26,6 +26,7 @@ defaultBuildSettings version = BuildSettings
26 , testWorkerThreads = 4
26 , testWorkerThreads = 4
27 , buildDocs = True
27 , buildDocs = True
28 , tarballDir = "patching/tarballs"
28 , tarballDir = "patching/tarballs"
29+ , cabalFileDir = Nothing
29 }
30 }
30
31
31build :: BuildSettings -> BuildPlan -> IO ()
32build :: BuildSettings -> BuildPlan -> IO ()
Stackage/Test.hs+11−1
@@ -12,7 +12,8 @@ import qualified Data.Set as Set
12import Data.Typeable (Typeable)
12import Data.Typeable (Typeable)
13import Stackage.Types
13import Stackage.Types
14import Stackage.Util
14import Stackage.Util
15−import System.Directory (createDirectory, removeFile)
15+import System.Directory (copyFile, createDirectory,
16+ createDirectoryIfMissing, removeFile)
16import System.Exit (ExitCode (ExitSuccess))
17import System.Exit (ExitCode (ExitSuccess))
17import System.FilePath ((<.>), (</>))
18import System.FilePath ((<.>), (</>))
18import System.IO (IOMode (WriteMode, AppendMode),
19import System.IO (IOMode (WriteMode, AppendMode),
@@ -99,6 +100,15 @@ runTestSuite settings testdir (packageName, SelectedPackageInfo {..}) = do
99 passed <- handle (\TestException -> return False) $ do
100 passed <- handle (\TestException -> return False) $ do
100 package' <- replaceTarball (tarballDir settings) package
101 package' <- replaceTarball (tarballDir settings) package
101 getHandle WriteMode $ run "cabal" ["unpack", package'] testdir
102 getHandle WriteMode $ run "cabal" ["unpack", package'] testdir
103+ case cabalFileDir settings of
104+ Nothing -> return ()
105+ Just cfd -> do
106+ let PackageName name = packageName
107+ basename = name ++ ".cabal"
108+ src = dir </> basename
109+ dst = cfd </> basename
110+ createDirectoryIfMissing True cfd
111+ copyFile src dst
102 getHandle AppendMode $ run "cabal" (addCabalArgs settings BSTest ["configure", "--enable-tests"]) dir
112 getHandle AppendMode $ run "cabal" (addCabalArgs settings BSTest ["configure", "--enable-tests"]) dir
103 when spiHasTests $ do
113 when spiHasTests $ do
104 getHandle AppendMode $ run "cabal" ["build"] dir
114 getHandle AppendMode $ run "cabal" ["build"] dir
Stackage/Types.hs+2
@@ -136,6 +136,8 @@ data BuildSettings = BuildSettings
136 -- ^ Build docs as part of the test procedure.
136 -- ^ Build docs as part of the test procedure.
137 , tarballDir :: FilePath
137 , tarballDir :: FilePath
138 -- ^ Directory containing replacement tarballs.
138 -- ^ Directory containing replacement tarballs.
139+ , cabalFileDir :: Maybe FilePath
140+ -- ^ Directory to place cabal files in
139 }
141 }
140
142
141-- | A wrapper around a @Map@ providing a better @Monoid@ instance.
143-- | A wrapper around a @Map@ providing a better @Monoid@ instance.