imp: add --location tag to print command [#2368]
;fix: delete hledger-print-location, move doc to Print.hs>"print,other features"
This commit is contained in:
parent
588cab14f3
commit
6bf9369cda
@ -366,20 +366,6 @@ It has the same structure as most of the add-ons here:
|
|||||||
- providing command line help
|
- providing command line help
|
||||||
- accepting common hledger options
|
- accepting common hledger options
|
||||||
|
|
||||||
### hledger-print-location
|
|
||||||
|
|
||||||
[`hledger-print-location.hs`](https://github.com/simonmichael/hledger/blob/master/bin/hledger-print-location.hs)
|
|
||||||
is a variant of hledger's `print` command
|
|
||||||
that adds the file and line number to every transaction, as a tag:
|
|
||||||
```cli
|
|
||||||
$ hledger print-location -f hledger/examples/sample.journal desc:eat
|
|
||||||
2008/06/03 * eat & shop
|
|
||||||
; location: /Users/simon/src/hledger/examples/sample.journal:30
|
|
||||||
expenses:food $1
|
|
||||||
expenses:supplies $1
|
|
||||||
assets:cash
|
|
||||||
```
|
|
||||||
|
|
||||||
### hledger-swap-dates
|
### hledger-swap-dates
|
||||||
|
|
||||||
[`hledger-swap-dates.hs`](https://github.com/simonmichael/hledger/blob/master/bin/hledger-swap-dates.hs)
|
[`hledger-swap-dates.hs`](https://github.com/simonmichael/hledger/blob/master/bin/hledger-swap-dates.hs)
|
||||||
|
|||||||
@ -1,49 +0,0 @@
|
|||||||
#!/usr/bin/env stack
|
|
||||||
-- stack runghc --verbosity info --package hledger --package string-qq
|
|
||||||
-- Run from inside the hledger source tree, or compile with compile.sh.
|
|
||||||
-- See hledger-check-fancyassertions.hs.
|
|
||||||
|
|
||||||
{-
|
|
||||||
Quick script that adds file/line number tags to print output.
|
|
||||||
cf https://www.reddit.com/r/plaintextaccounting/comments/ddzn8o/finding_corresponding_journal_files_from_hledger/
|
|
||||||
|
|
||||||
$ hledger print-location -f examples/sample.journal desc:eat
|
|
||||||
2008/06/03 * eat & shop
|
|
||||||
; location: /Users/simon/src/hledger/examples/sample.journal:30
|
|
||||||
expenses:food $1
|
|
||||||
expenses:supplies $1
|
|
||||||
assets:cash
|
|
||||||
-}
|
|
||||||
|
|
||||||
{-# LANGUAGE OverloadedStrings #-}
|
|
||||||
{-# LANGUAGE QuasiQuotes #-}
|
|
||||||
|
|
||||||
import Data.String.QQ (s)
|
|
||||||
import qualified Data.Text as T
|
|
||||||
import Hledger.Cli.Script
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
|
||||||
cmdmode = hledgerCommandMode
|
|
||||||
[s| print-location
|
|
||||||
Like print, but adds tags showing the file path and location of transactions.
|
|
||||||
|]
|
|
||||||
[]
|
|
||||||
[generalflagsgroup1]
|
|
||||||
[]
|
|
||||||
([], Just $ argsFlag "[QUERY]")
|
|
||||||
------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
main :: IO ()
|
|
||||||
main = do
|
|
||||||
opts <- getHledgerCliOpts cmdmode
|
|
||||||
withJournalDo opts $ \j ->
|
|
||||||
print' opts j{jtxns = map addLocationTag $ jtxns j}
|
|
||||||
|
|
||||||
addLocationTag :: Transaction -> Transaction
|
|
||||||
addLocationTag t = t{tcomment = tcomment t `commentAddTagNextLine` loctag}
|
|
||||||
where
|
|
||||||
loctag = ("location", T.pack . sourcePosPairPretty $ tsourcepos t)
|
|
||||||
|
|
||||||
-- Like showSourcePosPair in Hledger.Data.Transaction, but show just the starting line number.
|
|
||||||
showSourcePosPairLine :: (SourcePos, SourcePos) -> String
|
|
||||||
showSourcePosPairLine (SourcePos f line _, _) = f ++ ":" ++ show line
|
|
||||||
@ -60,7 +60,7 @@ printmode = hledgerCommandMode
|
|||||||
flagReq ["match","m"] (\s opts -> Right $ setopt "match" s opts) arg
|
flagReq ["match","m"] (\s opts -> Right $ setopt "match" s opts) arg
|
||||||
("fuzzy search for one recent transaction with description closest to "++arg)
|
("fuzzy search for one recent transaction with description closest to "++arg)
|
||||||
,flagReq ["base-url"] (\s opts -> Right $ setopt "base-url" s opts) "URLPREFIX" "in html output, generate links to hledger-web, with this prefix. (Usually the base url shown by hledger-web; can also be relative.)"
|
,flagReq ["base-url"] (\s opts -> Right $ setopt "base-url" s opts) "URLPREFIX" "in html output, generate links to hledger-web, with this prefix. (Usually the base url shown by hledger-web; can also be relative.)"
|
||||||
,flagNone ["l", "location"] (setboolopt "location") "add file/line number tags to print output"
|
,flagNone ["location"] (setboolopt "location") "add file/line number tags to print output"
|
||||||
,outputFormatFlag ["txt","beancount","csv","tsv","html","fods","json","sql"]
|
,outputFormatFlag ["txt","beancount","csv","tsv","html","fods","json","sql"]
|
||||||
,outputFileFlag
|
,outputFileFlag
|
||||||
])
|
])
|
||||||
@ -366,7 +366,6 @@ postingToSpreadsheet fmt baseUrl query 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
|
||||||
|
|
||||||
-- from hledger/bin/hledger-print-location.hs
|
|
||||||
addLocationTag :: Transaction -> Transaction
|
addLocationTag :: Transaction -> Transaction
|
||||||
addLocationTag t = t{tcomment = tcomment t `commentAddTagNextLine` loctag}
|
addLocationTag t = t{tcomment = tcomment t `commentAddTagNextLine` loctag}
|
||||||
where
|
where
|
||||||
|
|||||||
@ -29,7 +29,7 @@ Flags:
|
|||||||
txt, beancount, csv, tsv, html, fods, json, sql.
|
txt, beancount, csv, tsv, html, fods, json, sql.
|
||||||
-o --output-file=FILE write output to FILE. A file extension matching
|
-o --output-file=FILE write output to FILE. A file extension matching
|
||||||
one of the above formats selects that format.
|
one of the above formats selects that format.
|
||||||
-l --location add file/line number tags to print output.
|
--location add file/line number tags to print output.
|
||||||
```
|
```
|
||||||
|
|
||||||
The print command displays full journal entries (transactions)
|
The print command displays full journal entries (transactions)
|
||||||
@ -139,6 +139,16 @@ DESC should contain at least two characters.
|
|||||||
If there is no similar-enough match,
|
If there is no similar-enough match,
|
||||||
no transaction will be shown and the program exit code will be non-zero.
|
no transaction will be shown and the program exit code will be non-zero.
|
||||||
|
|
||||||
|
With `--location`, print adds the file and line number to every transaction, as a tag:
|
||||||
|
|
||||||
|
```cli
|
||||||
|
$ hledger print-location -f hledger/examples/sample.journal desc:eat
|
||||||
|
2008/06/03 * eat & shop
|
||||||
|
; location: /Users/simon/src/hledger/examples/sample.journal:30
|
||||||
|
expenses:food $1
|
||||||
|
expenses:supplies $1
|
||||||
|
assets:cash
|
||||||
|
```
|
||||||
|
|
||||||
### print output format
|
### print output format
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user