summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoachim Breitner <mail@joachim-breitner.de>2015-08-11 13:53:12 +0200
committerJoachim Breitner <mail@joachim-breitner.de>2015-08-11 14:10:31 +0200
commit7ae131cdbcaa50f973a7a7b895910b0916476751 (patch)
treecabd3ff669b5e2f5b074fd053e9515a9eb17ae66 /src
parent5897e78deb39a5544fcad1400bfaf5a32dee066a (diff)
downloadDHG_packages-7ae131cdbcaa50f973a7a7b895910b0916476751.tar.gz
make-all: More options
Diffstat (limited to 'src')
-rw-r--r--src/make-all.hs29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/make-all.hs b/src/make-all.hs
index 976be8baf..ab95a372f 100644
--- a/src/make-all.hs
+++ b/src/make-all.hs
@@ -31,6 +31,8 @@ data Conf = Conf
, excludedPackages :: [String]
, targetDir :: FilePath
, jobs :: Int
+ , schrootName :: String
+ , shakeVerbosity' :: Verbosity
, targets :: [String]
}
@@ -62,10 +64,25 @@ confSpec = Conf
long "jobs" <>
short 'j' <>
metavar "INT" <>
- help "numbe of parallel jobs" <>
+ help "number of parallel jobs" <>
showDefault <>
value 1
)
+ <*> strOption (
+ long "chroot" <>
+ short 'j' <>
+ metavar "SCHROOT" <>
+ help "name of the schroot to use" <>
+ showDefault <>
+ value "haskell"
+ )
+ <*> option readOption (
+ long "shake-verbosity" <>
+ metavar "VERBOSITY" <>
+ help "verbosity for shake (Silent, Quiet, Normal, Loud, Chatty or Diagnostic)" <>
+ showDefault <>
+ value Normal
+ )
<*> O.many (argument str (metavar "TARGET..."))
parseCommaOrSpace:: ReadM [String]
@@ -73,6 +90,13 @@ parseCommaOrSpace = do
s <- readerAsk
return $ split (dropBlanks $ dropDelims $ oneOf ";, ") s
+readOption :: Read a => ReadM a
+readOption = do
+ s <- readerAsk
+ case readMaybe s of
+ Nothing -> fail $ "Cannot parse " ++ s
+ Just n -> return n
+
parseNat :: ReadM Int
parseNat = do
s <- readerAsk
@@ -196,6 +220,7 @@ makeShakeOptions :: Conf -> ShakeOptions
makeShakeOptions Conf{..} = shakeOptions
{ shakeFiles = targetDir </> ".shake"
, shakeThreads = jobs
+ , shakeVerbosity = shakeVerbosity'
}
shakeMain conf@(Conf {..}) = do
@@ -284,7 +309,7 @@ shakeMain conf@(Conf {..}) = do
localDebs <- filter ((==".deb").takeExtension) . map (makeRelative targetDir) <$> liftIO (listFiles targetDir)
let debs = filter ((`S.member` usedDepsS) . debFileNameToPackage) localDebs
Exit c <- cmd (Cwd targetDir) (EchoStdout False)
- ["sbuild", "-c", "haskell","-A","--no-apt-update","--dist", distribution, "--chroot-setup-commands=bash "++fixup, dsc] ["--extra-package="++d | d <- debs]
+ ["sbuild", "-c", schrootName,"-A","--no-apt-update","--dist", distribution, "--chroot-setup-commands=bash "++fixup, dsc] ["--extra-package="++d | d <- debs]
unless (c == ExitSuccess) $ do
putNormal $ "Failed to build " ++ source ++ "_" ++ version
putNormal $ "See " ++ targetDir </> logFileName source version ++ " for details."