imp: print: --match now respects -o and -O
This commit is contained in:
parent
4399076a0a
commit
d5682aa644
@ -15,10 +15,8 @@ module Hledger.Cli.Commands.Print (
|
|||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
import Data.Text (Text)
|
|
||||||
import Data.List (intersperse)
|
import Data.List (intersperse)
|
||||||
import qualified Data.Text as T
|
import qualified Data.Text as T
|
||||||
import qualified Data.Text.IO as T
|
|
||||||
import qualified Data.Text.Lazy as TL
|
import qualified Data.Text.Lazy as TL
|
||||||
import qualified Data.Text.Lazy.Builder as TB
|
import qualified Data.Text.Lazy.Builder as TB
|
||||||
import Lens.Micro ((^.), _Just, has)
|
import Lens.Micro ((^.), _Just, has)
|
||||||
@ -61,11 +59,14 @@ print' opts j = do
|
|||||||
let j' = journalMapPostingAmounts mixedAmountSetFullPrecision j
|
let j' = journalMapPostingAmounts mixedAmountSetFullPrecision j
|
||||||
case maybestringopt "match" $ rawopts_ opts of
|
case maybestringopt "match" $ rawopts_ opts of
|
||||||
Nothing -> printEntries opts j'
|
Nothing -> printEntries opts j'
|
||||||
Just desc -> printMatch opts j' $ T.pack $ dbg1 "finding best match for description" desc
|
Just desc ->
|
||||||
|
case journalSimilarTransaction opts j' (dbg1 "finding best match for description" $ T.pack desc) of
|
||||||
|
Just t -> printEntries opts j'{jtxns=[t]}
|
||||||
|
Nothing -> putStrLn "no matches found." >> exitFailure
|
||||||
|
|
||||||
printEntries :: CliOpts -> Journal -> IO ()
|
printEntries :: CliOpts -> Journal -> IO ()
|
||||||
printEntries opts@CliOpts{reportspec_=rspec} j =
|
printEntries opts@CliOpts{reportspec_=rspec} j =
|
||||||
writeOutputLazyText opts . render $ entriesReport rspec j
|
writeOutputLazyText opts . render $ entriesReport rspec j
|
||||||
where
|
where
|
||||||
fmt = outputFormatFromOpts opts
|
fmt = outputFormatFromOpts opts
|
||||||
render | fmt=="txt" = entriesReportAsText opts
|
render | fmt=="txt" = entriesReportAsText opts
|
||||||
@ -196,13 +197,3 @@ postingToCSV p =
|
|||||||
status = T.pack . show $ pstatus p
|
status = T.pack . show $ pstatus p
|
||||||
account = showAccountName Nothing (ptype p) (paccount p)
|
account = showAccountName Nothing (ptype p) (paccount p)
|
||||||
comment = T.strip $ pcomment p
|
comment = T.strip $ pcomment p
|
||||||
|
|
||||||
-- --match
|
|
||||||
|
|
||||||
-- | Print the transaction most closely and recently matching a description
|
|
||||||
-- (and the query, if any).
|
|
||||||
printMatch :: CliOpts -> Journal -> Text -> IO ()
|
|
||||||
printMatch opts j desc = do
|
|
||||||
case journalSimilarTransaction opts j desc of
|
|
||||||
Nothing -> putStrLn "no matches found." >> exitFailure
|
|
||||||
Just t -> T.putStr $ showTransaction t
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user