From 70297f6ac27ce663a51ea4659cc7c892eced23c1 Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Mon, 6 Aug 2018 10:29:42 +0200 Subject: [PATCH] Add --verbose/-v switch to Make.hs --- Make.hs | 23 +++++++++++++++++------ README.md | 4 ++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Make.hs b/Make.hs index 947fda281..4b010287e 100644 --- a/Make.hs +++ b/Make.hs @@ -88,6 +88,7 @@ data Info = Info { infoBuildDir :: FilePath -- ^ where to put built RGL modules (fixed) , infoInstallDir :: Maybe FilePath -- ^ install directory (found dynamically) , infoGFPath :: FilePath -- ^ path to GF + , infoVerbose :: Bool } deriving (Show) -- | Build info object from command line args @@ -104,11 +105,13 @@ mkInfo = do case catMaybes [mflag,menvar,mbuilt] of [] -> Nothing p:_ -> Just p + let verbose = verbose_switch `elem` args || verbose_switch_short `elem` args return $ Info { infoBuildDir = "dist" , infoInstallDir = inst_dir , infoGFPath = maybe default_gf id (getFlag gf_flag args) + , infoVerbose = verbose } where default_gf = "gf" @@ -150,7 +153,7 @@ rglCommands = prelude_dst_dir = infoBuildDir bi "prelude" createDirectoryIfMissing True prelude_dst_dir files <- getDirectoryContents prelude_src_dir - run_gfc bi (["-s", "--gfo-dir="++prelude_dst_dir] ++ [prelude_src_dir file | file <- files, file /= "." && file /= ".."]) + run_gfc bi ([if infoVerbose bi then "--verbose" else "--quiet", "--gfo-dir="++prelude_dst_dir] ++ [prelude_src_dir file | file <- files, file /= "." && file /= ".."]) , RGLCommand "all" True $ gfcp [l,s,c,t,sc] , RGLCommand "lang" False $ gfcp [l,s] @@ -167,7 +170,7 @@ rglCommands = Just mfull -> flip mapM_ modes $ \mode -> do let dst = getRGLBuildDir bi mode putStrLn $ "Building [" ++ m ++ "] " ++ dst - run_gfc bi ["-s", "--gfo-dir="++dst, mfull] + run_gfc bi [if infoVerbose bi then "--verbose" else "--quiet", "--gfo-dir="++dst, mfull] -- , RGLCommand "pgf" False $ \modes args bi -> -- parallel_ [ @@ -227,6 +230,7 @@ checkArgs args = do || lang_flag `isPrefixOf` arg || gf_flag `isPrefixOf` arg || destination_flag `isPrefixOf` arg + || arg `elem` [verbose_switch, verbose_switch_short] )) unless (null args') $ die $ "Unrecognised argument: " ++ unwords args' return () @@ -294,6 +298,13 @@ gf_flag = "--gf=" destination_flag :: String destination_flag = "--dest=" +-- | Switch for making verbose +verbose_switch :: String +verbose_switch = "--verbose" + +verbose_switch_short :: String +verbose_switch_short = "-v" + -- | Get flag value from list of args getFlag :: String -> [String] -> Maybe String getFlag flag args = fmap (drop (length flag)) $ find (isPrefixOf flag) args @@ -422,7 +433,7 @@ parse l = sourceDir "parse" ("Parse" ++ langCode l ++ ".gf") -- | Get unlexer flags for languages unlexer :: String -> [LangInfo] -> String unlexer abstr ls = - "-unlexer=\\\"" ++ unwords + "--unlexer=\\\"" ++ unwords [ abstr ++ langCode lang ++ "=" ++ fromJust unl | lang <- ls , let unl = langUnlexer lang @@ -440,16 +451,16 @@ gfcn bi mode summary files = do let dir = getRGLBuildDir bi mode preproc = case mode of AllTenses -> "" - Present -> "-preproc=mkPresent" + Present -> "--preproc=mkPresent" createDirectoryIfMissing True dir putStrLn $ "Building [" ++ show mode ++ "] " ++ summary - run_gfc bi (["-s", "-no-pmcfg", preproc, "--gfo-dir="++dir] ++ files) + run_gfc bi ([if infoVerbose bi then "--verbose" else "--quiet", "--no-pmcfg", preproc, "--gfo-dir="++dir] ++ files) -- | Runs the gf executable in compile mode with the given arguments run_gfc :: Info -> [String] -> IO () run_gfc bi args = do let - args' = ["-batch","-gf-lib-path="++sourceDir] ++ filter (not . null) args + args' = ["--batch","--gf-lib-path="++sourceDir] ++ filter (not . null) args gf = infoGFPath bi execute gf args' diff --git a/README.md b/README.md index dd307ab11..815b86fd6 100644 --- a/README.md +++ b/README.md @@ -50,9 +50,9 @@ runghc Make.hs ... Where `...` is one of: ``` -build [CMDS] [MODE] [--langs=[+|-]LANG,LANG,...] [--gf=...] +build [CMDS] [MODE] [--langs=[+|-]LANG,LANG,...] [--gf=...] [--verbose|-v] copy [MODE] [--dest=...] -install [CMDS] [MODE] [--langs=[+|-]LANG,LANG,...] [--gf=...] [--dest=...] +install [CMDS] [MODE] [--langs=[+|-]LANG,LANG,...] [--gf=...] [--dest=...] [--verbose|-v] clean ```