diff options
author | Joachim Breitner <mail@joachim-breitner.de> | 2015-08-11 13:53:12 +0200 |
---|---|---|
committer | Joachim Breitner <mail@joachim-breitner.de> | 2015-08-11 14:10:31 +0200 |
commit | 7ae131cdbcaa50f973a7a7b895910b0916476751 (patch) | |
tree | cabd3ff669b5e2f5b074fd053e9515a9eb17ae66 /src | |
parent | 5897e78deb39a5544fcad1400bfaf5a32dee066a (diff) | |
download | DHG_packages-7ae131cdbcaa50f973a7a7b895910b0916476751.tar.gz |
make-all: More options
Diffstat (limited to 'src')
-rw-r--r-- | src/make-all.hs | 29 |
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." |