cabal-debian 4.38.3 → 4.38.4
raw patch · 5 files changed
+21/−18 lines, 5 files
Files
- cabal-debian.cabal +2/−2
- src/Debian/Debianize/Files.hs +3/−2
- src/Debian/Debianize/Finalize.hs +7/−6
- src/Debian/Debianize/Output.hs +7/−6
- src/Debian/Debianize/Prelude.hs +2/−2
cabal-debian.cabal view
@@ -1,5 +1,5 @@ Name: cabal-debian-Version: 4.38.3+Version: 4.38.4 Copyright: Copyright (c) 2007-2014, David Fox, Jeremy Shaw License: BSD3 License-File: LICENSE@@ -144,7 +144,7 @@ test-data/artvaluereport2/output/debian/artvaluereport2-backups.install test-data/artvaluereport2/output/debian/copyright test-data/artvaluereport2/output/debian/source/format-tested-with: GHC == 7.8.4, GHC == 7.10.3, GHC == 7.11.*+tested-with: GHC == 8.0.1, GHC == 8.0.2, GHC == 8.4.3, GHC == 8.6.2 flag pretty-112 Description: prettyclass was merged into pretty-1.1.2
src/Debian/Debianize/Files.hs view
@@ -12,6 +12,7 @@ import Data.Monoid (mempty) #endif import Control.Lens+import Control.Monad.Fail (MonadFail) import Control.Monad.Trans (lift) import Control.Monad.Writer (execWriterT, tell, WriterT) import Data.Char (isSpace)@@ -49,7 +50,7 @@ -- the Debianization produced by finalizeDebianization in the unit -- tests.) -debianizationFileMap :: (Monad m, Functor m) => DebianT m (Map FilePath Text)+debianizationFileMap :: (MonadFail m, Functor m) => DebianT m (Map FilePath Text) debianizationFileMap = fmap (Map.fromListWithKey (\ k a b -> error $ "Multiple values for " ++ k ++ ":\n " ++ show a ++ "\n" ++ show b)) $ execWriterT $ do -- here <- liftIO getCurrentDirectory@@ -144,7 +145,7 @@ where pathf name = "debian" </> show (ppPrint name) ++ ".prerm" -rules :: (Monad m, Functor m) => FilesT m [(FilePath, Text)]+rules :: (MonadFail m, Functor m) => FilesT m [(FilePath, Text)] rules = do Just rh <- lift (use (D.rulesHead)) rassignments <- lift (use (D.rulesSettings)) >>= return . intercalate "\n"
src/Debian/Debianize/Finalize.hs view
@@ -16,6 +16,7 @@ import Control.Lens hiding ((<.>)) import Control.Monad (unless, when) import Control.Monad as List (mapM_)+import Control.Monad.Fail (MonadFail) import Control.Monad.State (get, modify) import Control.Monad.Trans (liftIO, MonadIO) import Data.ByteString.Lazy.UTF8 (fromString)@@ -83,23 +84,23 @@ -- debian/changelog file) from the current directory, then runs -- @customize@ and finalizes the debianization so it is ready to be -- output.-debianize :: (MonadIO m, Functor m) => CabalT m () -> CabalT m ()+debianize :: (MonadIO m, MonadFail m, Functor m) => CabalT m () -> CabalT m () debianize = debianizeWith (return ()) -debianizeWebsite :: (MonadIO m, Functor m) => CabalT m () -> CabalT m ()+debianizeWebsite :: (MonadIO m, MonadFail m, Functor m) => CabalT m () -> CabalT m () debianizeWebsite = debianizeWith (expandWebsite >> expandServer >> expandBackups) -- | Pass a function with some additional work to do. I don't know -- if this could be done by just summing it with customize - probably. -- But I don't want to untangle this right now.-debianizeWith :: (MonadIO m, Functor m) => CabalT m () -> CabalT m () -> CabalT m ()+debianizeWith :: (MonadIO m, MonadFail m, Functor m) => CabalT m () -> CabalT m () -> CabalT m () debianizeWith goodies customize = do liftCabal inputChangeLog customize finalizeDebianization goodies -- | Do some light IO and call finalizeDebianization.-finalizeDebianization :: (MonadIO m, Functor m) => CabalT m () -> CabalT m ()+finalizeDebianization :: (MonadIO m, MonadFail m, Functor m) => CabalT m () -> CabalT m () finalizeDebianization goodies = do date <- liftIO getCurrentLocalRFC822Time currentUser <- liftIO getCurrentDebianUser@@ -119,7 +120,7 @@ -- FIXME: we should be able to run this without a PackageDescription, change -- paramter type to Maybe PackageDescription and propagate down thru code finalizeDebianization' ::- (MonadIO m, Functor m)+ (MonadIO m, MonadFail m, Functor m) => CabalT m () -> String -> Maybe NameAddr@@ -327,7 +328,7 @@ whenEmpty d [] = d whenEmpty _ l = l -finalizeControl :: (Monad m, Functor m) => Maybe NameAddr -> CabalT m ()+finalizeControl :: (MonadFail m, Functor m) => Maybe NameAddr -> CabalT m () finalizeControl currentUser = do finalizeMaintainer currentUser Just src <- use (A.debInfo . D.sourcePackageName)
src/Debian/Debianize/Output.hs view
@@ -19,6 +19,7 @@ import Control.Exception as E (throw) import Control.Lens+import Control.Monad.Fail (MonadFail) import Control.Monad.State (get, put, StateT) import Control.Monad.Trans (liftIO, MonadIO) import Data.Algorithm.DiffContext (getContextDiff, prettyContextDiff)@@ -33,7 +34,7 @@ import Debian.Debianize.Files (debianizationFileMap) import Debian.Debianize.InputDebian (inputDebianization) import Debian.Debianize.Goodies (expandWebsite)-import Debian.Debianize.Monad (DebianT, CabalT, evalDebian, evalCabalT)+import Debian.Debianize.Monad (DebianT, CabalT, evalDebianT, evalCabalT) import Debian.Debianize.Prelude (indent, replaceFile, zipMaps) import Debian.Debianize.Finalize (debianizeWith) import Debian.Debianize.Optparse@@ -100,7 +101,7 @@ -- | Depending on the options in @atoms@, either validate, describe, -- or write the generated debianization.-finishDebianization :: forall m. (MonadIO m, Functor m) => StateT CabalInfo m ()+finishDebianization :: forall m. (MonadIO m, MonadFail m, Functor m) => StateT CabalInfo m () finishDebianization = zoom debInfo $ do new <- get case () of@@ -126,7 +127,7 @@ -- | Write the files of the debianization @d@ to ./debian-writeDebianization :: (MonadIO m, Functor m) => DebianT m ()+writeDebianization :: (MonadIO m, MonadFail m, Functor m) => DebianT m () writeDebianization = do files <- debianizationFileMap liftIO $ mapM_ (uncurry doFile) (Map.toList files)@@ -138,7 +139,7 @@ -- | Return a string describing the debianization - a list of file -- names and their contents in a somewhat human readable format.-describeDebianization :: (MonadIO m, Functor m) => DebianT m String+describeDebianization :: (MonadIO m, MonadFail m, Functor m) => DebianT m String describeDebianization = debianizationFileMap >>= return . concatMap (\ (path, text) -> path ++ ": " ++ indent " > " (unpack text)) . Map.toList @@ -160,8 +161,8 @@ -- describing the differences. compareDebianization :: D.DebInfo -> D.DebInfo -> [String] compareDebianization old new =- let oldFiles = evalDebian debianizationFileMap (canonical old)- newFiles = evalDebian debianizationFileMap (canonical new) in+ let ~(Just oldFiles) = evalDebianT debianizationFileMap (canonical old)+ ~(Just newFiles) = evalDebianT debianizationFileMap (canonical new) in elems $ zipMaps doFile oldFiles newFiles where doFile :: FilePath -> Maybe Text -> Maybe Text -> Maybe String
src/Debian/Debianize/Prelude.hs view
@@ -62,7 +62,7 @@ import Control.Monad.State (get, MonadState, StateT, put) import Data.Char (isSpace) import Data.List as List (dropWhileEnd, intersperse, isSuffixOf, lines, map)-import Data.Map as Map (empty, findWithDefault, foldWithKey, fromList, insert, lookup, map, Map)+import Data.Map as Map (empty, findWithDefault, foldrWithKey, fromList, insert, lookup, map, Map) import Data.Maybe (catMaybes, fromJust, fromMaybe, listToMaybe, mapMaybe) import Data.Monoid ((<>), mconcat) import Data.Set as Set (Set, toList)@@ -266,7 +266,7 @@ zipMaps :: Ord k => (k -> Maybe a -> Maybe b -> Maybe c) -> Map k a -> Map k b -> Map k c zipMaps f m n =- foldWithKey h (foldWithKey g Map.empty m) n+ foldrWithKey h (foldrWithKey g Map.empty m) n where g k a r = case f k (Just a) (lookup k n) of Just c -> Map.insert k c r -- Both m and n have entries for k