diff --git a/hledger-ui/Hledger/UI/Main.hs b/hledger-ui/Hledger/UI/Main.hs index f76f0c5a5..fc30ff720 100644 --- a/hledger-ui/Hledger/UI/Main.hs +++ b/hledger-ui/Hledger/UI/Main.hs @@ -61,6 +61,9 @@ main = withProgName "hledger-ui.log" $ do -- force Hledger.Utils.Debug.* to log dbg1IO "args" progArgs dbg1IO "debugLevel" debugLevel + -- try to encourage user's $PAGER to properly display ANSI (in command line help) + when useColorOnStdout setupPager + opts@UIOpts{uoCliOpts=copts@CliOpts{inputopts_=iopts,rawopts_=rawopts}} <- getHledgerUIOpts -- when (debug_ $ cliopts_ opts) $ printf "%s\n" prognameandversion >> printf "opts: %s\n" (show opts) @@ -68,7 +71,7 @@ main = withProgName "hledger-ui.log" $ do -- force Hledger.Utils.Debug.* to log let copts' = copts{inputopts_=iopts{forecast_=forecast_ iopts <|> Just nulldatespan}} case True of - _ | "help" `inRawOpts` rawopts -> putStr (showModeUsage uimode) + _ | "help" `inRawOpts` rawopts -> pager (showModeUsage uimode) _ | "info" `inRawOpts` rawopts -> runInfoForTopic "hledger-ui" Nothing _ | "man" `inRawOpts` rawopts -> runManForTopic "hledger-ui" Nothing _ | "version" `inRawOpts` rawopts -> putStrLn prognameandversion diff --git a/hledger-web/Hledger/Web/Main.hs b/hledger-web/Hledger/Web/Main.hs index 08eacbfa0..ebb1e6e24 100644 --- a/hledger-web/Hledger/Web/Main.hs +++ b/hledger-web/Hledger/Web/Main.hs @@ -48,10 +48,13 @@ hledgerWebDev = -- Run normally. hledgerWebMain :: IO () hledgerWebMain = do + -- try to encourage user's $PAGER to properly display ANSI (in command line help) + when useColorOnStdout setupPager + wopts@WebOpts{cliopts_=copts@CliOpts{debug_, rawopts_}} <- getHledgerWebOpts when (debug_ > 0) $ printf "%s\n" prognameandversion >> printf "opts: %s\n" (show wopts) if - | "help" `inRawOpts` rawopts_ -> putStr (showModeUsage webmode) >> exitSuccess + | "help" `inRawOpts` rawopts_ -> pager (showModeUsage webmode) >> exitSuccess | "info" `inRawOpts` rawopts_ -> runInfoForTopic "hledger-web" Nothing | "man" `inRawOpts` rawopts_ -> runManForTopic "hledger-web" Nothing | "version" `inRawOpts` rawopts_ -> putStrLn prognameandversion >> exitSuccess diff --git a/hledger/Hledger/Cli/Main.hs b/hledger/Hledger/Cli/Main.hs index 4a23a851c..2c7b06fbc 100644 --- a/hledger/Hledger/Cli/Main.hs +++ b/hledger/Hledger/Cli/Main.hs @@ -98,7 +98,7 @@ mainmode addons = defMode { main :: IO () main = do starttime <- getPOSIXTime - -- if we will be showing ANSI, try to ensure user's $PAGER will display it properly + -- try to encourage user's $PAGER to properly display ANSI when useColorOnStdout setupPager -- Choose and run the appropriate internal or external command based