bin: new hledger-tags addon, lists tags in matched transactions
This commit is contained in:
		
							parent
							
								
									15e8d77968
								
							
						
					
					
						commit
						e908d96fd9
					
				
							
								
								
									
										43
									
								
								bin/hledger-tags.hs
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										43
									
								
								bin/hledger-tags.hs
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,43 @@ | |||||||
|  | #!/usr/bin/env stack | ||||||
|  | {- stack runghc --verbosity info | ||||||
|  |    --package hledger-lib | ||||||
|  |    --package hledger | ||||||
|  |    --package here | ||||||
|  |    --package text | ||||||
|  | -} | ||||||
|  | 
 | ||||||
|  | {-# OPTIONS_GHC -Wno-missing-signatures -Wno-name-shadowing #-} | ||||||
|  | {-# LANGUAGE QuasiQuotes #-} | ||||||
|  | 
 | ||||||
|  | import Data.List | ||||||
|  | import Data.String.Here | ||||||
|  | import qualified Data.Text.IO as T | ||||||
|  | import Hledger | ||||||
|  | import Hledger.Cli | ||||||
|  | import Text.Printf | ||||||
|  | 
 | ||||||
|  | ------------------------------------------------------------------------------ | ||||||
|  | cmdmode = hledgerCommandMode | ||||||
|  |   [here| tags | ||||||
|  | List all the tag names in use. | ||||||
|  | With a query, only matched transactions' tags are shown. | ||||||
|  | Reads the default journal file, or another specified with -f. | ||||||
|  | FLAGS | ||||||
|  |   |] | ||||||
|  |   [] -- [flagNone ["strict"] (\opts -> setboolopt "strict" opts) "makes date comparing strict"] --  | ||||||
|  |   [generalflagsgroup1] | ||||||
|  |   [] | ||||||
|  |   ([], Just $ argsFlag "[QUERY]") | ||||||
|  | ------------------------------------------------------------------------------ | ||||||
|  | 
 | ||||||
|  | main :: IO () | ||||||
|  | main = do | ||||||
|  |   opts <- getHledgerCliOpts cmdmode | ||||||
|  |   withJournalDo opts $ | ||||||
|  |    \CliOpts{rawopts_=_rawopts,reportopts_=ropts} j -> do | ||||||
|  |     d <- getCurrentDay | ||||||
|  |     let | ||||||
|  |       q = queryFromOpts d ropts | ||||||
|  |       ts = filter (q `matchesTransaction`) $ jtxns $ journalSelectingAmountFromOpts ropts j | ||||||
|  |       tags = nub $ sort $ map fst $ concatMap transactionAllTags ts | ||||||
|  |     mapM_ T.putStrLn tags | ||||||
| @ -124,3 +124,8 @@ helps ledger-autosync detect already-seen transactions when importing. | |||||||
| [hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-rewrite.hs#L28) | [hledger-rewrite.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-rewrite.hs#L28) | ||||||
| Adds one or more custom postings to matched transactions. | Adds one or more custom postings to matched transactions. | ||||||
| 
 | 
 | ||||||
|  | ### tags | ||||||
|  | 
 | ||||||
|  | [hledger-tags.hs](https://github.com/simonmichael/hledger/blob/master/bin/hledger-tags.hs) | ||||||
|  | Lists tag names in use. | ||||||
|  | 
 | ||||||
|  | |||||||
| @ -2432,6 +2432,9 @@ transactions when importing. | |||||||
| .PP | .PP | ||||||
| hledger\-rewrite.hs Adds one or more custom postings to matched | hledger\-rewrite.hs Adds one or more custom postings to matched | ||||||
| transactions. | transactions. | ||||||
|  | .SS tags | ||||||
|  | .PP | ||||||
|  | hledger\-tags.hs Lists tag names in use. | ||||||
| .SH ENVIRONMENT | .SH ENVIRONMENT | ||||||
| .PP | .PP | ||||||
| \f[B]COLUMNS\f[] The screen width used by the register command. | \f[B]COLUMNS\f[] The screen width used by the register command. | ||||||
|  | |||||||
| @ -1972,6 +1972,7 @@ start making your own! | |||||||
| * print-unique:: | * print-unique:: | ||||||
| * register-match:: | * register-match:: | ||||||
| * rewrite:: | * rewrite:: | ||||||
|  | * tags:: | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger.1.info,  Node: autosync,  Next: budget,  Up: Experimental add-ons | File: hledger.1.info,  Node: autosync,  Next: budget,  Up: Experimental add-ons | ||||||
| @ -2061,7 +2062,7 @@ hledger-register-match.hs helps ledger-autosync detect already-seen | |||||||
| transactions when importing. | transactions when importing. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
| File: hledger.1.info,  Node: rewrite,  Prev: register-match,  Up: Experimental add-ons | File: hledger.1.info,  Node: rewrite,  Next: tags,  Prev: register-match,  Up: Experimental add-ons | ||||||
| 
 | 
 | ||||||
| 5.3.11 rewrite | 5.3.11 rewrite | ||||||
| -------------- | -------------- | ||||||
| @ -2069,6 +2070,14 @@ File: hledger.1.info,  Node: rewrite,  Prev: register-match,  Up: Experimental a | |||||||
| hledger-rewrite.hs Adds one or more custom postings to matched | hledger-rewrite.hs Adds one or more custom postings to matched | ||||||
| transactions. | transactions. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | File: hledger.1.info,  Node: tags,  Prev: rewrite,  Up: Experimental add-ons | ||||||
|  | 
 | ||||||
|  | 5.3.12 tags | ||||||
|  | ----------- | ||||||
|  | 
 | ||||||
|  | hledger-tags.hs Lists tag names in use. | ||||||
|  | 
 | ||||||
|  |  | ||||||
| Tag Table: | Tag Table: | ||||||
| Node: Top70 | Node: Top70 | ||||||
| @ -2170,27 +2179,29 @@ Node: irr64701 | |||||||
| Ref: #irr64801 | Ref: #irr64801 | ||||||
| Node: Experimental add-ons64879 | Node: Experimental add-ons64879 | ||||||
| Ref: #experimental-add-ons65033 | Ref: #experimental-add-ons65033 | ||||||
| Node: autosync65426 | Node: autosync65435 | ||||||
| Ref: #autosync65540 | Ref: #autosync65549 | ||||||
| Node: budget65779 | Node: budget65788 | ||||||
| Ref: #budget65903 | Ref: #budget65912 | ||||||
| Node: chart65969 | Node: chart65978 | ||||||
| Ref: #chart66088 | Ref: #chart66097 | ||||||
| Node: check66159 | Node: check66168 | ||||||
| Ref: #check66283 | Ref: #check66292 | ||||||
| Node: check-dates66350 | Node: check-dates66359 | ||||||
| Ref: #check-dates66492 | Ref: #check-dates66501 | ||||||
| Node: check-dupes66565 | Node: check-dupes66574 | ||||||
| Ref: #check-dupes66708 | Ref: #check-dupes66717 | ||||||
| Node: equity66785 | Node: equity66794 | ||||||
| Ref: #equity66913 | Ref: #equity66922 | ||||||
| Node: prices67032 | Node: prices67041 | ||||||
| Ref: #prices67161 | Ref: #prices67170 | ||||||
| Node: print-unique67216 | Node: print-unique67225 | ||||||
| Ref: #print-unique67365 | Ref: #print-unique67374 | ||||||
| Node: register-match67458 | Node: register-match67467 | ||||||
| Ref: #register-match67614 | Ref: #register-match67623 | ||||||
| Node: rewrite67712 | Node: rewrite67721 | ||||||
| Ref: #rewrite67833 | Ref: #rewrite67855 | ||||||
|  | Node: tags67933 | ||||||
|  | Ref: #tags68038 | ||||||
|  |  | ||||||
| End Tag Table | End Tag Table | ||||||
|  | |||||||
| @ -1738,6 +1738,9 @@ ADD-ON COMMANDS | |||||||
|        hledger-rewrite.hs Adds one or more custom postings to matched transac- |        hledger-rewrite.hs Adds one or more custom postings to matched transac- | ||||||
|        tions. |        tions. | ||||||
| 
 | 
 | ||||||
|  |    tags | ||||||
|  |        hledger-tags.hs Lists tag names in use. | ||||||
|  | 
 | ||||||
| ENVIRONMENT | ENVIRONMENT | ||||||
|        COLUMNS  The  screen  width used by the register command.  Default: the |        COLUMNS  The  screen  width used by the register command.  Default: the | ||||||
|        full terminal width. |        full terminal width. | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user