doc: rename/flesh out "argument files" doc, add to cookbook
This commit is contained in:
		
							parent
							
								
									a9c4ac24cd
								
							
						
					
					
						commit
						a3fa09b604
					
				
							
								
								
									
										1
									
								
								Shake.hs
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Shake.hs
									
									
									
									
									
								
							| @ -146,6 +146,7 @@ main = do | |||||||
|         ,"site/account-aliases.md" |         ,"site/account-aliases.md" | ||||||
|         ,"site/account-separator.md" |         ,"site/account-separator.md" | ||||||
|         ,"site/investments.md" |         ,"site/investments.md" | ||||||
|  |         ,"site/argfiles.md" | ||||||
|         ] |         ] | ||||||
| 
 | 
 | ||||||
|       -- cookbook pages combined, ready for web output by hakyll |       -- cookbook pages combined, ready for web output by hakyll | ||||||
|  | |||||||
| @ -32,11 +32,12 @@ Or, you can run the addon executable directly: `hledger-ui --watch`. | |||||||
| Most hledger commands accept arguments after the command name,  | Most hledger commands accept arguments after the command name,  | ||||||
| which are often a [query](#queries), filtering the data in some way.  | which are often a [query](#queries), filtering the data in some way.  | ||||||
| 
 | 
 | ||||||
| ## Argument expansion | ## Argument files | ||||||
| 
 | 
 | ||||||
| You can save a set of command line options/arguments in a file, one per line, | You can save a set of command line options/arguments in a file, one per line, | ||||||
| and then reuse them by writing `@FILE` in a command line. | and then reuse them by writing `@FILENAME` in a command line. | ||||||
| (To prevent this expansion of `@`-arguments, precede them with a `--` argument.) | To prevent this expansion of `@`-arguments, precede them with a `--` argument. | ||||||
|  | For more, see [Save frequently used options](argsfiles.html). | ||||||
| 
 | 
 | ||||||
| ## Special characters | ## Special characters | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										78
									
								
								site/argfiles.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								site/argfiles.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,78 @@ | |||||||
|  | # Save frequently used options | ||||||
|  | 
 | ||||||
|  | You can save frequently used options and arguments in an  | ||||||
|  | [argument file](manual#argument-files), one per | ||||||
|  | line, then reuse them via a @FILE argument on the command line. | ||||||
|  | (hledger 1.4+) | ||||||
|  | 
 | ||||||
|  | Here's an example. | ||||||
|  | I keep frequently-used options for quick daily reports in a file | ||||||
|  | called `simple.args`. The name can be anything; I use a `.args` suffix | ||||||
|  | so I can find these easily. Here's the content of `simple.args`: | ||||||
|  | ``` | ||||||
|  | --alias=/:(business|personal):/=: | ||||||
|  | --alias=/:(bank|cash|online):/=: | ||||||
|  | --alias=/:bofi:/=:b | ||||||
|  | --alias=/:unify:/=:u | ||||||
|  | --alias=/:wf:/=:w | ||||||
|  | -2 | ||||||
|  | cur:. | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | The format is one command-line flag or command-line argument per line. | ||||||
|  | Now if I write `@simple.args` in a hledger command line, it will be replaced | ||||||
|  | by all of the above options/flags: | ||||||
|  | 
 | ||||||
|  | These options are just an example, but in case you're wondering: | ||||||
|  | they remove some detail, giving simplified reports which are easier for me to read at a glance. | ||||||
|  | 
 | ||||||
|  | - the aliases simplify the chart of accounts, hiding some distinctions (eg business vs. personal) and flattening some bank account names | ||||||
|  | - the `-2` depth flag limits account depth to 2, hiding deeper subaccounts | ||||||
|  | - the `cur:.` argument shows only single-character currencies, hiding a bunch of cluttersome commodities I don't want to see | ||||||
|  | 
 | ||||||
|  | ## Usage | ||||||
|  | 
 | ||||||
|  | Generate a balance report showing the simplified accounts: | ||||||
|  | ```shell | ||||||
|  | $ hledger bal @simple.args | ||||||
|  | ``` | ||||||
|  | Start a live-updating hledger-ui showing the simplified asset accounts only: | ||||||
|  | ```shell | ||||||
|  | $ hledger-ui --watch @simple.args assets | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Options in the arguments file can be overridden by similar options later on | ||||||
|  | the command line, in the usual way. Eg, to show just a little more account detail: | ||||||
|  | ```shell | ||||||
|  | $ hledger bal @simple.args -3 | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ## Quoting | ||||||
|  | 
 | ||||||
|  | Special characters in the arguments file may need quoted, | ||||||
|  | following the usual rules of your shell (bash, fish etc.),  | ||||||
|  | but they'll need one less level of quoting than on the | ||||||
|  | command line. I think: | ||||||
|  | ```shell | ||||||
|  | $ hledger bal @simple.args | ||||||
|  | ``` | ||||||
|  | is equivalent to writing: | ||||||
|  | ```shell | ||||||
|  | $ hledger bal "--alias=/:(business|personal):/=:" "--alias=/:(bank|cash|online):/=:" "--alias=/:bofi:/=:b" "--alias=/:unify:/=:u" "--alias=/:wf:/=:w" "-2" "cur:." | ||||||
|  | ``` | ||||||
|  | So in this example, using the bash shell, the `|` pipe character does  | ||||||
|  | not need to be quoted in the arguments file (and should not be).  | ||||||
|  | 
 | ||||||
|  | ## Suppressing this feature | ||||||
|  | 
 | ||||||
|  | If you actually need to write an argument beginning with @,  | ||||||
|  | eg let's say you have an account pattern beginning with that character,  | ||||||
|  | you'll want a way to disable this feature.  On unix systems at least,  | ||||||
|  | you can do that by inserting a `--` argument first. Eg: | ||||||
|  | ``` | ||||||
|  | $ hledger bal @somewhere.com       # looks for additional arguments in the ./somewhere.com file | ||||||
|  | $ hledger bal -- @somewhere.com    # matches account names containing "@somewhere.com" | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | On windows, this might or might not require a hledger built with GHC 8.2+.  | ||||||
|  | (Let us know.) | ||||||
| @ -90,7 +90,9 @@ For more docs relevant to all ledger-likes, see [plaintextaccounting.org](http:/ | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ### More.. | ### More.. | ||||||
| [PTA: Common tasks](http://plaintextaccounting.org/#common-tasks) | 
 | ||||||
|  | [Save frequently used options](argfiles.html)\ | ||||||
|  | [PTA: Common tasks](http://plaintextaccounting.org/#common-tasks)\ | ||||||
| 
 | 
 | ||||||
| </div> | </div> | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user