imp: areg: clearer, more consistent error messages
This commit is contained in:
parent
45127dc5f5
commit
9c872c2d9c
@ -69,11 +69,12 @@ aregistermode = hledgerCommandMode
|
|||||||
aregister :: CliOpts -> Journal -> IO ()
|
aregister :: CliOpts -> Journal -> IO ()
|
||||||
aregister opts@CliOpts{rawopts_=rawopts,reportspec_=rspec} j = do
|
aregister opts@CliOpts{rawopts_=rawopts,reportspec_=rspec} j = do
|
||||||
-- the first argument specifies the account, any remaining arguments are a filter query
|
-- the first argument specifies the account, any remaining arguments are a filter query
|
||||||
|
let help = "aregister needs an ACCTPAT argument to select an account"
|
||||||
(apat,querystring) <- case listofstringopt "args" rawopts of
|
(apat,querystring) <- case listofstringopt "args" rawopts of
|
||||||
[] -> fail "aregister needs an account, please provide an account name or pattern"
|
[] -> error' $ help <> ".\nPlease provide an account name or a (case-insensitive, infix, regexp) pattern."
|
||||||
(a:as) -> return (a, map T.pack as)
|
(a:as) -> return (a, map T.pack as)
|
||||||
let
|
let
|
||||||
acct = fromMaybe (error' $ show apat++" did not match any account") -- PARTIAL:
|
acct = fromMaybe (error' $ help <> ",\nbut " ++ show apat++" did not match any account.") -- PARTIAL:
|
||||||
. firstMatch $ journalAccountNamesDeclaredOrImplied j
|
. firstMatch $ journalAccountNamesDeclaredOrImplied j
|
||||||
firstMatch = case toRegexCI $ T.pack apat of
|
firstMatch = case toRegexCI $ T.pack apat of
|
||||||
Right re -> find (regexMatchText re)
|
Right re -> find (regexMatchText re)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user