mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-02-01 17:10:25 +01:00
Optionally copy all cabal files to a directory
This commit is contained in:
parent
3d41543645
commit
502e0d1ae8
@ -26,6 +26,7 @@ defaultBuildSettings version = BuildSettings
|
|||||||
, testWorkerThreads = 4
|
, testWorkerThreads = 4
|
||||||
, buildDocs = True
|
, buildDocs = True
|
||||||
, tarballDir = "patching/tarballs"
|
, tarballDir = "patching/tarballs"
|
||||||
|
, cabalFileDir = Nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
build :: BuildSettings -> BuildPlan -> IO ()
|
build :: BuildSettings -> BuildPlan -> IO ()
|
||||||
|
|||||||
@ -12,7 +12,8 @@ import qualified Data.Set as Set
|
|||||||
import Data.Typeable (Typeable)
|
import Data.Typeable (Typeable)
|
||||||
import Stackage.Types
|
import Stackage.Types
|
||||||
import Stackage.Util
|
import Stackage.Util
|
||||||
import System.Directory (createDirectory, removeFile)
|
import System.Directory (copyFile, createDirectory,
|
||||||
|
createDirectoryIfMissing, removeFile)
|
||||||
import System.Exit (ExitCode (ExitSuccess))
|
import System.Exit (ExitCode (ExitSuccess))
|
||||||
import System.FilePath ((<.>), (</>))
|
import System.FilePath ((<.>), (</>))
|
||||||
import System.IO (IOMode (WriteMode, AppendMode),
|
import System.IO (IOMode (WriteMode, AppendMode),
|
||||||
@ -99,6 +100,15 @@ runTestSuite settings testdir (packageName, SelectedPackageInfo {..}) = do
|
|||||||
passed <- handle (\TestException -> return False) $ do
|
passed <- handle (\TestException -> return False) $ do
|
||||||
package' <- replaceTarball (tarballDir settings) package
|
package' <- replaceTarball (tarballDir settings) package
|
||||||
getHandle WriteMode $ run "cabal" ["unpack", package'] testdir
|
getHandle WriteMode $ run "cabal" ["unpack", package'] testdir
|
||||||
|
case cabalFileDir settings of
|
||||||
|
Nothing -> return ()
|
||||||
|
Just cfd -> do
|
||||||
|
let PackageName name = packageName
|
||||||
|
basename = name ++ ".cabal"
|
||||||
|
src = dir </> basename
|
||||||
|
dst = cfd </> basename
|
||||||
|
createDirectoryIfMissing True cfd
|
||||||
|
copyFile src dst
|
||||||
getHandle AppendMode $ run "cabal" (addCabalArgs settings BSTest ["configure", "--enable-tests"]) dir
|
getHandle AppendMode $ run "cabal" (addCabalArgs settings BSTest ["configure", "--enable-tests"]) dir
|
||||||
when spiHasTests $ do
|
when spiHasTests $ do
|
||||||
getHandle AppendMode $ run "cabal" ["build"] dir
|
getHandle AppendMode $ run "cabal" ["build"] dir
|
||||||
|
|||||||
@ -136,6 +136,8 @@ data BuildSettings = BuildSettings
|
|||||||
-- ^ Build docs as part of the test procedure.
|
-- ^ Build docs as part of the test procedure.
|
||||||
, tarballDir :: FilePath
|
, tarballDir :: FilePath
|
||||||
-- ^ Directory containing replacement tarballs.
|
-- ^ Directory containing replacement tarballs.
|
||||||
|
, cabalFileDir :: Maybe FilePath
|
||||||
|
-- ^ Directory to place cabal files in
|
||||||
}
|
}
|
||||||
|
|
||||||
-- | A wrapper around a @Map@ providing a better @Monoid@ instance.
|
-- | A wrapper around a @Map@ providing a better @Monoid@ instance.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user