debian-build 0.7.1.1 → 0.7.2.0
raw patch · 3 files changed
+27/−16 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Debian.Package.Build.Command: instance Read BuildMode
Files
- debian-build.cabal +1/−1
- mains/odebuild.hs +25/−14
- src/Debian/Package/Build/Command.hs +1/−1
debian-build.cabal view
@@ -1,5 +1,5 @@ name: debian-build-version: 0.7.1.1+version: 0.7.2.0 synopsis: Debian package build sequence tools description: This package provides build sequence functions for debian package, and includes on-the-fly
mains/odebuild.hs view
@@ -1,9 +1,9 @@-import Control.Arrow ((>>>))-import Control.Monad (void, when)+import Control.Monad (void, when, (>=>)) import System.Environment (getProgName, getArgs) import System.Console.GetOpt (OptDescr (Option), ArgDescr (ReqArg, NoArg), ArgOrder (RequireOrder), usageInfo, getOpt)+import Text.Read (readMaybe) import Debian.Package.Data (Source, Hackage, isBinaryPackage) import qualified Debian.Package.Build.Command as Command@@ -29,28 +29,36 @@ ODebuildOptions { revision :: Maybe String , installDeps :: Bool- } deriving Show+ , buildModes :: [BuildMode] -> [BuildMode]+ } defaultOptions :: ODebuildOptions defaultOptions = ODebuildOptions { revision = Nothing , installDeps = False+ , buildModes = id } -descs :: [OptDescr (ODebuildOptions -> ODebuildOptions)]+descs :: [OptDescr (ODebuildOptions -> Either String ODebuildOptions)] descs = [ Option [] ["revision"]- (ReqArg (\s opts -> opts { revision = Just s }) "DEBIAN_REVISION")+ (ReqArg (\s opts -> return $ opts { revision = Just s }) "DEBIAN_REVISION") "debian package revision to pass to cabal-debian" , Option [] ["install-deps"]- (NoArg $ \opts -> opts { installDeps = True })- "install build depends when to run build"+ (NoArg $ \opts -> return $ opts { installDeps = True })+ "install build depends before running build"+ , Option [] ["mode"]+ (ReqArg (\s opts -> maybe (Left $ "Unknown build mode: " ++ s) Right $ do+ m <- readMaybe s+ return $ opts { buildModes = buildModes opts . (m : ) } )+ "BUILD_MODE")+ "add build-mode to build-mode list to specify" ] parseOption :: [String]- -> (ODebuildOptions -> ODebuildOptions, ([String], [String]))-parseOption args = (foldr (>>>) id ufs, (ss1, ss2)) where+ -> (ODebuildOptions -> Either String ODebuildOptions, ([String], [String]))+parseOption args = (foldr (>=>) return ufs, (ss1, ss2)) where (ufs, ss1, ss2) = getOpt RequireOrder descs args help :: IO ()@@ -88,7 +96,7 @@ source = build' [Src] build :: ODebuildOptions -> [String] -> Build (Source, Maybe Hackage)-build = build' []+build opts = build' (buildModes opts []) opts install :: ODebuildOptions -> [String] -> Build () install opts args = do@@ -110,10 +118,13 @@ parseArgs args0 | not $ null errs = fail $ concat errs | not $ null args1 = fail $ "Unknown arguments: " ++ unwords args1- | otherwise = return- (f defaultOptions, drop 1 rest ) where- (opt, rest) = break (== "--") args0- (f, (args1, errs)) = parseOption opt+ | otherwise =+ either (fail . ("Option parse error: " ++)) return $ do+ opts <- f defaultOptions+ return (opts, drop 1 rest)+ where+ (opt, rest) = break (== "--") args0+ (f, (args1, errs)) = parseOption opt runArgs :: (ODebuildOptions -> [String] -> Build a) -> [String] -> IO a runArgs act as = do
src/Debian/Package/Build/Command.hs view
@@ -218,7 +218,7 @@ -- | Build mode, all or binary only data BuildMode = All | Bin | Src | Dep | Indep- deriving (Eq, Show)+ deriving (Eq, Show, Read) -- | Infer all build mode list from debian control file data modeListFromControl :: Control -> [BuildMode]