Merge remote-tracking branch 'origin/merge-requests/230'
This commit is contained in:
commit
56fa798406
@ -212,7 +212,7 @@ ghcCompileOpts =
|
|||||||
(fmap Left $ option
|
(fmap Left $ option
|
||||||
str
|
str
|
||||||
(short 'p' <> long "patchdir" <> metavar "PATCH_DIR" <> help
|
(short 'p' <> long "patchdir" <> metavar "PATCH_DIR" <> help
|
||||||
"Absolute path to patch directory (applies all .patch and .diff files in order using -p1)"
|
"Absolute path to patch directory (applies all .patch and .diff files in order using -p1. This order is determined by a quilt series file if it exists, or the patches are lexicographically ordered)"
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -879,20 +879,28 @@ makeOut args workdir = do
|
|||||||
executeOut mymake args workdir
|
executeOut mymake args workdir
|
||||||
|
|
||||||
|
|
||||||
-- | Try to apply patches in order. Fails with 'PatchFailed'
|
-- | Try to apply patches in order. The order is determined by
|
||||||
-- on first failure.
|
-- a quilt series file (in the patch directory) if one exists,
|
||||||
|
-- else the patches are applied in lexicographical order.
|
||||||
|
-- Fails with 'PatchFailed' on first failure.
|
||||||
applyPatches :: (MonadReader env m, HasDirs env, HasLog env, MonadIO m)
|
applyPatches :: (MonadReader env m, HasDirs env, HasLog env, MonadIO m)
|
||||||
=> FilePath -- ^ dir containing patches
|
=> FilePath -- ^ dir containing patches
|
||||||
-> FilePath -- ^ dir to apply patches in
|
-> FilePath -- ^ dir to apply patches in
|
||||||
-> Excepts '[PatchFailed] m ()
|
-> Excepts '[PatchFailed] m ()
|
||||||
applyPatches pdir ddir = do
|
applyPatches pdir ddir = do
|
||||||
patches <- (fmap . fmap) (pdir </>) $ liftIO $ findFiles
|
let lexicographical = (fmap . fmap) (pdir </>) $ sort <$> findFiles
|
||||||
pdir
|
pdir
|
||||||
(makeRegexOpts compExtended
|
(makeRegexOpts compExtended
|
||||||
execBlank
|
execBlank
|
||||||
([s|.+\.(patch|diff)$|] :: ByteString)
|
([s|.+\.(patch|diff)$|] :: ByteString)
|
||||||
)
|
)
|
||||||
forM_ (sort patches) $ \patch' -> applyPatch patch' ddir
|
let quilt = map (pdir </>) . lines <$> readFile (pdir </> "series")
|
||||||
|
|
||||||
|
patches <- liftIO $ quilt `catchIO` (\e ->
|
||||||
|
if isDoesNotExistError e || isPermissionError e then
|
||||||
|
lexicographical
|
||||||
|
else throwIO e)
|
||||||
|
forM_ patches $ \patch' -> applyPatch patch' ddir
|
||||||
|
|
||||||
|
|
||||||
applyPatch :: (MonadReader env m, HasDirs env, HasLog env, MonadIO m)
|
applyPatch :: (MonadReader env m, HasDirs env, HasLog env, MonadIO m)
|
||||||
|
Loading…
Reference in New Issue
Block a user