mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-10 05:39:31 +03:00
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