42 lines
833 B
Haskell
42 lines
833 B
Haskell
{-|
|
|
|
|
The man command.
|
|
|
|
|-}
|
|
|
|
module Hledger.Cli.Man (
|
|
|
|
manmode
|
|
,man
|
|
|
|
) where
|
|
|
|
import Prelude ()
|
|
import Prelude.Compat
|
|
import Data.List
|
|
import System.Console.CmdArgs.Explicit
|
|
|
|
import Hledger.Data.RawOptions
|
|
import Hledger.Cli.CliOptions
|
|
import Hledger.Cli.DocFiles
|
|
|
|
manmode = (defCommandMode $ ["man"] ++ aliases) {
|
|
modeHelp = "show any of the hledger manuals with man" `withAliases` aliases
|
|
,modeGroupFlags = Group {
|
|
groupUnnamed = []
|
|
,groupHidden = []
|
|
,groupNamed = []
|
|
}
|
|
}
|
|
where aliases = []
|
|
|
|
-- | Try to use man to view the selected manual.
|
|
man :: CliOpts -> IO ()
|
|
man opts = do
|
|
let args = listofstringopt "args" $ rawopts_ opts
|
|
case args of
|
|
[] -> putStrLn $
|
|
"Choose a topic, eg: hledger man cli\n" ++
|
|
intercalate ", " docTopics
|
|
topic:_ -> runManForTopic topic
|