run: support --man, --info, --tldr
This commit is contained in:
parent
7fdb2f7fe6
commit
758335daf0
@ -33,11 +33,13 @@ import Control.Monad.IO.Class (liftIO)
|
||||
import Control.Monad.Extra (concatMapM)
|
||||
|
||||
import System.Exit (ExitCode)
|
||||
import System.Console.CmdArgs.Explicit (expandArgsAt, modeNames)
|
||||
import System.IO (stdin, hIsTerminalDevice, hIsOpen)
|
||||
import System.IO.Unsafe (unsafePerformIO)
|
||||
import System.Console.Haskeline
|
||||
|
||||
import Safe (headMay)
|
||||
import Hledger.Cli.DocFiles (runTldrForPage, runInfoForTopic, runManForTopic)
|
||||
import Hledger.Cli.Utils (journalTransform)
|
||||
|
||||
-- | Command line options for this command.
|
||||
@ -139,6 +141,19 @@ runCommand defaultJournalOverride findBuiltinCommand cmdline = do
|
||||
args' <- replaceNumericFlags <$> expandArgsAt args
|
||||
dbg1IO "runCommand final args" (cmdname,args')
|
||||
opts <- getHledgerCliOpts' cmdmode args'
|
||||
let
|
||||
rawopts = rawopts_ opts
|
||||
mmodecmdname = headMay $ modeNames cmdmode
|
||||
helpFlag = boolopt "help" rawopts
|
||||
tldrFlag = boolopt "tldr" rawopts
|
||||
infoFlag = boolopt "info" rawopts
|
||||
manFlag = boolopt "man" rawopts
|
||||
if
|
||||
| helpFlag -> runPager $ showModeUsage cmdmode ++ "\n"
|
||||
| tldrFlag -> runTldrForPage $ maybe "hledger" (("hledger-"<>)) mmodecmdname
|
||||
| infoFlag -> runInfoForTopic "hledger" mmodecmdname
|
||||
| manFlag -> runManForTopic "hledger" mmodecmdname
|
||||
| otherwise -> do
|
||||
withJournalCached (Just defaultJournalOverride) opts $ \(j,key) -> do
|
||||
if cmdname == "run" -- allow "run" to call "run"
|
||||
then run (Just key) findBuiltinCommand opts
|
||||
|
||||
Loading…
Reference in New Issue
Block a user