From 9c872c2d9c28f85391b3d13b8ed9a8cd04ce116d Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Sun, 30 Jan 2022 08:43:41 -1000 Subject: [PATCH] imp: areg: clearer, more consistent error messages --- hledger/Hledger/Cli/Commands/Aregister.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hledger/Hledger/Cli/Commands/Aregister.hs b/hledger/Hledger/Cli/Commands/Aregister.hs index 8e4db17d4..4a3c2a26c 100644 --- a/hledger/Hledger/Cli/Commands/Aregister.hs +++ b/hledger/Hledger/Cli/Commands/Aregister.hs @@ -69,11 +69,12 @@ aregistermode = hledgerCommandMode aregister :: CliOpts -> Journal -> IO () aregister opts@CliOpts{rawopts_=rawopts,reportspec_=rspec} j = do -- 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 - [] -> 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) 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 = case toRegexCI $ T.pack apat of Right re -> find (regexMatchText re)