debian-build 0.8.0.0 → 0.9.0.0
raw patch · 5 files changed
+51/−43 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Debian.Package.Build.Command: cabalDebian :: FilePath -> Maybe String -> Trace ()
+ Debian.Package.Build.Command: cabalDebian :: FilePath -> Maybe String -> [String] -> Trace ()
- Debian.Package.Build.Command: cabalDebian' :: Maybe String -> Trace ()
+ Debian.Package.Build.Command: cabalDebian' :: Maybe String -> [String] -> Trace ()
- Debian.Package.Build.Sequence: cabalAutogenSources :: String -> Maybe String -> Build ((FilePath, FilePath), HaskellPackage)
+ Debian.Package.Build.Sequence: cabalAutogenSources :: String -> Maybe String -> [String] -> Build ((FilePath, FilePath), HaskellPackage)
- Debian.Package.Build.Sequence: genSources :: Maybe String -> Build (Maybe ((FilePath, FilePath), Source, Maybe Hackage))
+ Debian.Package.Build.Sequence: genSources :: Maybe String -> [String] -> Build (Maybe ((FilePath, FilePath), Source, Maybe Hackage))
Files
- LICENSE +1/−1
- debian-build.cabal +1/−1
- mains/odebuild.hs +28/−27
- src/Debian/Package/Build/Command.hs +5/−5
- src/Debian/Package/Build/Sequence.hs +16/−9
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2014, Kei Hibino+Copyright (c) 2014-2015, Kei Hibino All rights reserved.
debian-build.cabal view
@@ -1,5 +1,5 @@ name: debian-build-version: 0.8.0.0+version: 0.9.0.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
@@ -58,17 +58,17 @@ parseOption :: [String] -> (ODebuildOptions -> Either String ODebuildOptions, ([String], [String]))-parseOption args = (foldr (>=>) return ufs, (ss1, ss2)) where- (ufs, ss1, ss2) = getOpt RequireOrder descs args+parseOption args = (foldr (>=>) return ufs, (as, es)) where+ (ufs, as, es) = getOpt RequireOrder descs args help :: IO () help = do prog <- getProgName let opts = "[options]"- debOpts = "[-- [debuild options]]"+ debOpts = "[-- [cabal-debian-options [-- [debuild-options]]]" msg = unlines $ map unwords [ [prog, "clean"]- , [prog, "prepare", opts]+ , [prog, "prepare", opts, "[-- [cabal-debian-options]]"] , [prog, "source", opts, debOpts] , [prog, "build", opts, debOpts] , [prog, "install", opts, debOpts]@@ -81,31 +81,31 @@ clean :: Build () clean = removeBuildDir -prepare :: ODebuildOptions -> Build ((FilePath, FilePath), Source, Maybe Hackage)-prepare opts = do+prepare :: ODebuildOptions -> [String] -> Build ((FilePath, FilePath), Source, Maybe Hackage)+prepare opts cdArgs = do clean- maybe (fail "Illegal state: genSources") return =<< genSources (revision opts)+ maybe (fail "Illegal state: genSources") return =<< genSources (revision opts) cdArgs -build' :: [BuildMode] -> ODebuildOptions -> [String] -> Build (Source, Maybe Hackage)-build' modes opts args = do- ((_, dir), src, mayH) <- prepare opts- liftTrace $ Command.build dir modes (installDeps opts) args+build' :: [BuildMode] -> ODebuildOptions -> [String] -> [String] -> Build (Source, Maybe Hackage)+build' modes opts cdArgs debArgs = do+ ((_, dir), src, mayH) <- prepare opts cdArgs+ liftTrace $ Command.build dir modes (installDeps opts) debArgs return (src, mayH) -source :: ODebuildOptions -> [String] -> Build (Source, Maybe Hackage)+source :: ODebuildOptions -> [String] -> [String] -> Build (Source, Maybe Hackage) source = build' [Src] -build :: ODebuildOptions -> [String] -> Build (Source, Maybe Hackage)+build :: ODebuildOptions -> [String] -> [String] -> Build (Source, Maybe Hackage) build opts = build' (buildModes opts []) opts -install :: ODebuildOptions -> [String] -> Build ()-install opts args = do- void $ build opts args+install :: ODebuildOptions -> [String] -> [String] -> Build ()+install opts cdArgs debArgs = do+ void $ build opts cdArgs debArgs install' -reinstall :: ODebuildOptions -> [String] -> Build ()-reinstall opts args = do- (_src, mayH) <- build opts args+reinstall :: ODebuildOptions -> [String] -> [String] -> Build ()+reinstall opts cdArgs debArgs = do+ (_src, mayH) <- build opts cdArgs debArgs maybe (return ()) remove' mayH install' @@ -114,22 +114,23 @@ cur <- pwd uncurry (runBuild b cur) defaultConfig -parseArgs :: [String] -> IO (ODebuildOptions, [String])+parseArgs :: [String] -> IO (ODebuildOptions, ([String], [String])) parseArgs args0- | not $ null errs = fail $ concat errs+ | not $ null errs = fail $ '\n' : concat [ " " ++ e | e <- errs ] | not $ null args1 = fail $ "Unknown arguments: " ++ unwords args1 | otherwise = either (fail . ("Option parse error: " ++)) return $ do opts <- f defaultOptions- return (opts, drop 1 rest)+ return (opts, (cdArgs, drop 1 rest1)) where- (opt, rest) = break (== "--") args0+ (opt, rest0) = break (== "--") args0+ (cdArgs, rest1) = break (== "--") $ drop 1 rest0 (f, (args1, errs)) = parseOption opt -runArgs :: (ODebuildOptions -> [String] -> Build a) -> [String] -> IO a+runArgs :: (ODebuildOptions -> [String] -> [String] -> Build a) -> [String] -> IO a runArgs act as = do- (opts, args) <- parseArgs as- run $ act opts args+ (opts, (cdArgs, debArgs)) <- parseArgs as+ run $ act opts cdArgs debArgs main :: IO () main = do@@ -148,4 +149,4 @@ "reinstall" -> runArgs reinstall as1 _ -> void $ runArgs build as2 - [] -> run . void $ build defaultOptions []+ [] -> run . void $ build defaultOptions [] []
src/Debian/Package/Build/Command.hs view
@@ -142,8 +142,8 @@ act -- | Just call /cabal-debian/ command-cabalDebian' :: Maybe String -> Trace ()-cabalDebian' mayRev = do+cabalDebian' :: Maybe String -> [String] -> Trace ()+cabalDebian' mayRev otherArgs = do ver <- origVersion' <$> packageVersion "cabal-debian" let revision = fromMaybe "1~autogen1" mayRev oldArgs = ["--quilt", "--revision=" ++ revision]@@ -156,11 +156,11 @@ | otherwise -> return oldArgs _ -> return oldArgs - rawSystem' "cabal-debian" args+ rawSystem' "cabal-debian" $ args ++ otherArgs -- | Call /cabal-debian/ command under specified directory-cabalDebian :: FilePath -> Maybe String -> Trace ()-cabalDebian dir = withCurrentDir' dir . cabalDebian'+cabalDebian :: FilePath -> Maybe String -> [String] -> Trace ()+cabalDebian dir mayRev = withCurrentDir' dir . cabalDebian' mayRev -- | Query debian package version packageVersion :: String -> Trace DebianVersion
src/Debian/Package/Build/Sequence.hs view
@@ -195,8 +195,10 @@ copyDebianDir srcDir return pair -cabalAutogenDebianDir :: Maybe String -> Build FilePath-cabalAutogenDebianDir mayRev = do+cabalAutogenDebianDir :: Maybe String -- ^ May specify revision string+ -> [String] -- ^ Optional arguments of cabal-debian command+ -> Build FilePath -- ^ Generated debian-dir path+cabalAutogenDebianDir mayRev cdArgs = do baseDir <- askBaseDir let ddName = "debian" tmpDD = baseDir </> ddName@@ -205,15 +207,18 @@ debDir <- (</> ddName) <$> getBuildDir liftTrace $ do- cabalDebian baseDir mayRev+ cabalDebian baseDir mayRev cdArgs createDirectoryIfMissing $ takeDirectory debDir renameDirectory tmpDD debDir return debDir -- | Setup source directory and archive using Cabal and cabal-debian.-cabalAutogenSources :: String -> Maybe String -> Build ((FilePath, FilePath), HaskellPackage)-cabalAutogenSources hname mayRev = do- debDir <- cabalAutogenDebianDir mayRev+cabalAutogenSources :: String -- ^ Hackge name string+ -> Maybe String -- ^ May specify revision string+ -> [String] -- ^ Optional arguments of cabal-debian command+ -> Build ((FilePath, FilePath), HaskellPackage) -- ^ Result package informations of generated source+cabalAutogenSources hname mayRev cdArgs = do+ debDir <- cabalAutogenDebianDir mayRev cdArgs pkg <- liftTrace . dpkgParseChangeLog $ debDir </> "changelog" let hpkg = haskellPackageFromPackage hname pkg pair@(_, srcDir) <- cabalGenOrigSources hpkg@@ -247,8 +252,10 @@ findCabalDescription = MaybeT (askBaseDir >>= liftIO . Cabal.findDescriptionFile) -- | On the fly setup of source directory and archive.-genSources :: Maybe String -> Build (Maybe ((FilePath, FilePath), Source, Maybe Hackage))-genSources mayRev = runMaybeT $+genSources :: Maybe String -- ^ May specify revision string+ -> [String] -- ^ Optional arguments of cabal-debian command+ -> Build (Maybe ((FilePath, FilePath), Source, Maybe Hackage)) -- ^ Result package informations of generated source+genSources mayRev cdArgs = runMaybeT $ do clog <- findDebianChangeLog src <- lift . liftTrace $ dpkgParseChangeLog clog (do hname <- takeBaseName <$> findCabalDescription@@ -260,7 +267,7 @@ <|> do hname <- takeBaseName <$> findCabalDescription lift $ do- (p, hpkg) <- cabalAutogenSources hname mayRev+ (p, hpkg) <- cabalAutogenSources hname mayRev cdArgs return (p, package hpkg, Just $ hackage hpkg) <|> do fail "No source generate rule found."