diff --git a/hledger/Hledger/Cli/Commands/Help.hs b/hledger/Hledger/Cli/Commands/Help.hs index 923fe6f4a..9b276ff38 100644 --- a/hledger/Hledger/Cli/Commands/Help.hs +++ b/hledger/Hledger/Cli/Commands/Help.hs @@ -19,10 +19,7 @@ module Hledger.Cli.Commands.Help ( import Prelude () import "base-compat-batteries" Prelude.Compat -import Data.Char -import Data.List import Data.Maybe -import Safe import System.Console.CmdArgs.Explicit import System.Environment import System.IO @@ -43,9 +40,9 @@ helpmode = hledgerCommandMode ] [] [] - ([], Just $ argsFlag "[MANUAL]") + ([], Nothing) -- Just $ argsFlag "[TOPIC]" --- | List or display one of the hledger manuals in various formats. +-- | Display the hledger manual in various formats. -- You can select a docs viewer with one of the `--info`, `--man`, `--pager` flags. -- Otherwise it will use the first available of: info, man, $PAGER, less, stdout -- (and always stdout if output is non-interactive). @@ -55,10 +52,10 @@ help' opts _ = do pagerprog <- fromMaybe "less" <$> lookupEnv "PAGER" interactive <- hIsTerminalDevice stdout let - args = take 1 $ listofstringopt "args" $ rawopts_ opts - topic = case args of - [pat] -> headMay [t | t <- docTopics, map toLower pat `isInfixOf` t] - _ -> Nothing + -- args = take 1 $ listofstringopt "args" $ rawopts_ opts + -- topic = case args of + -- [pat] -> headMay [t | t <- docTopics, map toLower pat `isInfixOf` t] + -- _ -> Nothing [info, man, pager, cat] = [runInfoForTopic, runManForTopic, runPagerForTopic pagerprog, printHelpForTopic] viewer @@ -70,11 +67,12 @@ help' opts _ = do | "man" `elem` exes = man | pagerprog `elem` exes = pager | otherwise = cat - case topic of - Nothing -> putStrLn $ unlines [ - "Please choose a manual by typing \"hledger help MANUAL\" (any substring is ok)." - ,"A viewer (info, man, $PAGER, or stdout) will be auto-selected," - ,"or type \"hledger help -h\" to see options. Manuals available:" - ] - ++ "\n " ++ unwords docTopics - Just t -> viewer t + viewer "hledger" + -- case topic of + -- Nothing -> putStrLn $ unlines [ + -- "Please choose a manual by typing \"hledger help MANUAL\" (any substring is ok)." + -- ,"A viewer (info, man, $PAGER, or stdout) will be auto-selected," + -- ,"or type \"hledger help -h\" to see options. Manuals available:" + -- ] + -- ++ "\n " ++ unwords docTopics + -- Just t -> viewer t diff --git a/hledger/Hledger/Cli/Commands/Help.md b/hledger/Hledger/Cli/Commands/Help.md index 8429b672c..9160d18aa 100644 --- a/hledger/Hledger/Cli/Commands/Help.md +++ b/hledger/Hledger/Cli/Commands/Help.md @@ -1,40 +1,16 @@ help\ -Show any of the hledger manuals. +Show the hledger user manual in one of several formats. _FLAGS -The `help` command displays any of the main [hledger user manuals](https://hledger.org/index.html), -in one of several ways. -Run it with no argument to list the manuals, or provide a full or partial manual name to select one. +This command shows the user manual built in to this hledger version, +using the best viewer it can find. +It can be useful if the correct version of the hledger manual, +or the usual viewing tools, are not installed on your system. -hledger manuals are available in several formats. -hledger help will use the first of these display methods that it finds: -info, man, $PAGER, less, stdout (or when non-interactive, just stdout). -You can force a particular viewer with the `--info/-i`, `--man/-m`, -`--pager/-p` flags. +It will use the first of these viewers that it finds in $PATH: +`info`, `man`, $PAGER, `less`, or stdout. +When run non-interactively, it always uses stdout. +Or you can force a particular viewer with the +`--info/-i`, `--man/-m`, or `--pager/-p` flags. -Examples: - -```shell -$ hledger help -Please choose a manual by typing "hledger help MANUAL" (a substring is ok). -Manuals: hledger hledger-ui hledger-web -``` - -```shell -$ hledger help h --man - -hledger(1) hledger User Manuals hledger(1) - -NAME - hledger - a command-line accounting tool - -SYNOPSIS - hledger [-f FILE] COMMAND [OPTIONS] [ARGS] - hledger [-f FILE] ADDONCMD -- [OPTIONS] [ARGS] - hledger - -DESCRIPTION - hledger is a cross-platform program for tracking money, time, or any -... -```