imp: ui, web: use a pager to show command line help, like cli
This commit is contained in:
parent
939532be95
commit
9c4b5a26fa
@ -62,6 +62,9 @@ main = withProgName "hledger-ui.log" $ do -- force Hledger.Utils.Debug.* to log
|
|||||||
dbg1IO "args" progArgs
|
dbg1IO "args" progArgs
|
||||||
dbg1IO "debugLevel" debugLevel
|
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
|
opts@UIOpts{uoCliOpts=copts@CliOpts{inputopts_=iopts,rawopts_=rawopts}} <- getHledgerUIOpts
|
||||||
-- when (debug_ $ cliopts_ opts) $ printf "%s\n" prognameandversion >> printf "opts: %s\n" (show opts)
|
-- when (debug_ $ cliopts_ opts) $ printf "%s\n" prognameandversion >> printf "opts: %s\n" (show opts)
|
||||||
|
|
||||||
@ -69,7 +72,7 @@ main = withProgName "hledger-ui.log" $ do -- force Hledger.Utils.Debug.* to log
|
|||||||
let copts' = copts{inputopts_=iopts{forecast_=forecast_ iopts <|> Just nulldatespan}}
|
let copts' = copts{inputopts_=iopts{forecast_=forecast_ iopts <|> Just nulldatespan}}
|
||||||
|
|
||||||
case True of
|
case True of
|
||||||
_ | "help" `inRawOpts` rawopts -> putStr (showModeUsage uimode)
|
_ | "help" `inRawOpts` rawopts -> pager (showModeUsage uimode)
|
||||||
_ | "info" `inRawOpts` rawopts -> runInfoForTopic "hledger-ui" Nothing
|
_ | "info" `inRawOpts` rawopts -> runInfoForTopic "hledger-ui" Nothing
|
||||||
_ | "man" `inRawOpts` rawopts -> runManForTopic "hledger-ui" Nothing
|
_ | "man" `inRawOpts` rawopts -> runManForTopic "hledger-ui" Nothing
|
||||||
_ | "version" `inRawOpts` rawopts -> putStrLn prognameandversion
|
_ | "version" `inRawOpts` rawopts -> putStrLn prognameandversion
|
||||||
|
|||||||
@ -48,10 +48,13 @@ hledgerWebDev =
|
|||||||
-- Run normally.
|
-- Run normally.
|
||||||
hledgerWebMain :: IO ()
|
hledgerWebMain :: IO ()
|
||||||
hledgerWebMain = do
|
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
|
wopts@WebOpts{cliopts_=copts@CliOpts{debug_, rawopts_}} <- getHledgerWebOpts
|
||||||
when (debug_ > 0) $ printf "%s\n" prognameandversion >> printf "opts: %s\n" (show wopts)
|
when (debug_ > 0) $ printf "%s\n" prognameandversion >> printf "opts: %s\n" (show wopts)
|
||||||
if
|
if
|
||||||
| "help" `inRawOpts` rawopts_ -> putStr (showModeUsage webmode) >> exitSuccess
|
| "help" `inRawOpts` rawopts_ -> pager (showModeUsage webmode) >> exitSuccess
|
||||||
| "info" `inRawOpts` rawopts_ -> runInfoForTopic "hledger-web" Nothing
|
| "info" `inRawOpts` rawopts_ -> runInfoForTopic "hledger-web" Nothing
|
||||||
| "man" `inRawOpts` rawopts_ -> runManForTopic "hledger-web" Nothing
|
| "man" `inRawOpts` rawopts_ -> runManForTopic "hledger-web" Nothing
|
||||||
| "version" `inRawOpts` rawopts_ -> putStrLn prognameandversion >> exitSuccess
|
| "version" `inRawOpts` rawopts_ -> putStrLn prognameandversion >> exitSuccess
|
||||||
|
|||||||
@ -98,7 +98,7 @@ mainmode addons = defMode {
|
|||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
starttime <- getPOSIXTime
|
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
|
when useColorOnStdout setupPager
|
||||||
|
|
||||||
-- Choose and run the appropriate internal or external command based
|
-- Choose and run the appropriate internal or external command based
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user