debian-build 0.2.1.1 → 0.2.2.0
raw patch · 4 files changed
+18/−10 lines, 4 files
Files
- debian-build.cabal +1/−1
- src/Debian/Package/Build/Command.hs +4/−4
- src/Debian/Package/Build/Monad.hs +11/−4
- src/Debian/Package/Build/Sequence.hs +2/−1
debian-build.cabal view
@@ -1,5 +1,5 @@ name: debian-build-version: 0.2.1.1+version: 0.2.2.0 synopsis: Debian package build sequence tools description: This package provides build sequence functions for debian package, and includes on-the-fly
src/Debian/Package/Build/Command.hs view
@@ -43,7 +43,7 @@ import Data.Version (Version, versionBranch, showVersion) import Debian.Package.Data (Hackage, ghcLibraryBinPackages, ghcLibraryPackages, Source, parseChangeLog, DebianVersion, readDebianVersion, origVersion')-import Debian.Package.Build.Monad (Trace, traceCommand, traceOut, bracketTrace_)+import Debian.Package.Build.Monad (Trace, traceCommand, traceOut, putLog, bracketTrace_) splitCommand :: [a] -> (a, [a])@@ -116,7 +116,7 @@ -- | Unpack .tar.gz under directory. unpackInDir :: FilePath -> FilePath -> Trace () apath `unpackInDir` dir = do- lift . putStrLn $ unwords ["Unpacking", apath, "in", dir, "."]+ putLog $ unwords ["Unpacking", apath, "in", dir, "."] rawSystem' ["tar", "-C", dir, "-zxf", apath] -- | Unpack .tar.gz under archive place.@@ -126,7 +126,7 @@ -- | Pack directory into .tar.gz under working directory packInDir' :: FilePath -> FilePath -> FilePath -> Trace () packInDir' pdir apath wdir = do- lift . putStrLn $ unwords ["Packing", pdir, "in", wdir, "into", apath, "."]+ putLog $ unwords ["Packing", pdir, "in", wdir, "into", apath, "."] rawSystem' ["tar", "-C", wdir, "-zcf", apath, pdir] -- | Pack directory into same location .tar.gz under working directory@@ -214,4 +214,4 @@ removeGhcLibrary mode hkg = do let pkgs All = ghcLibraryBinPackages pkgs Bin = ghcLibraryPackages- system' $ unwords ["yes '' |", "sudo apt-get remove", unwords $ pkgs mode hkg, "|| true"]+ system' $ unwords ["echo '' |", "sudo apt-get remove", unwords $ pkgs mode hkg, "|| true"]
src/Debian/Package/Build/Monad.hs view
@@ -9,7 +9,7 @@ -- -- This module provides monad types to control build scripts. module Debian.Package.Build.Monad- ( Trace, runTrace, traceCommand, traceOut+ ( Trace, runTrace, traceCommand, traceOut, putLog , bracketTrace, bracketTrace_ , BaseDir, baseDirCurrent, baseDirSpecify@@ -18,14 +18,14 @@ , BuildDir, buildDirRelative, buildDirAbsolute - , Config, defaultConfig, buildDir, mayDebianDirName+ , Config, defaultConfig, buildDir, mayDebianDirName, sourceExcludes , Build, liftTrace, runBuild, askConfig , bracketBuild, bracketBuild_ ) where import System.FilePath ((</>))-import System.IO (hPutStrLn, hFlush, stderr)+import System.IO (hPutStrLn, hFlush, stderr, stdout) import Data.Maybe (fromMaybe) import Control.Applicative ((<$>)) import Control.Monad (when)@@ -90,6 +90,12 @@ traceOut :: String -> Trace () traceOut = traceIO . tprint '>' +-- | Put log stinrg with flush.+putLog :: String -> Trace ()+putLog s = traceIO $ do+ let fh = stdout+ hPutStrLn fh s+ hFlush fh -- | Type to specify base directory filepath newtype BaseDir = BaseDir { unBaseDir :: Maybe FilePath }@@ -128,11 +134,12 @@ Config { buildDir :: BuildDir -- ^ Specify build dir , mayDebianDirName :: Maybe FilePath -- ^ Name of debian directory+ , sourceExcludes :: [FilePath] -- ^ Exclude directories to setup source directory } deriving Show -- | Default configuration defaultConfig :: (Config, Bool)-defaultConfig = (Config (buildDirRelative ".debian-build") Nothing, True)+defaultConfig = (Config (buildDirRelative ".debian-build") Nothing [".git", ".hg"], True) -- | Monad type with build base directory and build configuration. type Build = ReaderT BaseDir (ReaderT Config Trace)
src/Debian/Package/Build/Sequence.hs view
@@ -118,10 +118,11 @@ debDN <- debianDirName baseDir <- getBaseDir bldDir <- getBuildDir+ confEXs <- sourceExcludes <$> askConfig let excludes = [takeFileName d | d <- [bldDir] , baseDir `isPrefixOf` d ]- ++ [debDN]+ ++ [debDN] ++ confEXs liftTrace $ do createDirectoryIfMissing srcDir rawSystem'