help: show only the hledger manual, for now
This commit is contained in:
parent
7d3f05b16a
commit
f20cd2b112
@ -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
|
||||
|
||||
@ -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
|
||||
...
|
||||
```
|
||||
|
||||
Loading…
Reference in New Issue
Block a user