1
0
PiggyBank/README.md

132 lines
3.5 KiB
Markdown

Keep track of your piggy bank.
Every time you put coins in or take them out of your piggy bank, write here down
how much did you put or take. So you won't have to spend time counting them when
you decide to take them all out.
Yes, only coins, no banknots. Well, you actually can easily add them, but table
will become indeed wide.
# Usage
piggybank [OPTIONS] (COINS in FILE [of CURRENCY] | COINS from FILE
| show FILE [with t(ransactions)])
Common options:
- `-h,--help` — print this help;
- `-v,--version` — print program version;
- `-L,--list-currencies` — list supported currencies and a default one;
## Brief usage with examples
### Put coins in
```bash
piggybank [-r | --reversed] COINS in FILE [of CURRENCY]
piggybank -r 1 4 5 4 6 8 in example.pb of SRUB
```
### Take coins out
```bash
piggybank [-r | --reversed] COINS from FILE
piggybank -r 5 4 6 from example.pb
```
### Show information on your piggy bank
```bash
piggybank show FILE [with t(ransactions)]
piggybank show example.pb with t
```
## How to put coins in
```bash
piggybank [-r | --reversed] COINS in FILE [of CURRENCY]
```
`--reversed` flag reverses the order of coins. By default they come from least
significant face value to the most significant one and being complemented from
left so a set shorter than number of coins in a currency, e.g. 5 8 4 will be
interpreted as 0 0 0 5 8 4. And this flag will make it to be interpreted
as 5 8 4 0 0 0. It is convenient if you want to add only coins of low face
value (e.g. cents).
`COINS` is a set of coins' counts separated with space or comma character. For
example: 0 5 0 4 6 7. By default trailing zeroes will be added from the left.
So if you wrote something like 6 0 5 12 then it will be complemented to
0 0 6 0 5 12 if currency has 6 coins.
`FILE` is a name of a piggy bank file wich may not have a .pb extension at the
end, it will be added automatically.
`CURRENCY` specifies the currency of a new piggy bank. It will not change
currency of an existing piggy bank. ISO standard is used, e.g. EUR.
Case-insensitive.
### Examples:
```bash
piggybank 7 4 3 0 5 in example.pb of EUR
piggybank -r 0 4 6 in example
```
## How to take coins out
```bash
piggybank [-r | --reversed] COINS from FILE
```
All the parameters are explained above.
### Examples:
```bash
piggybank -r 0 0 4 from example.pb
```
## How to see what you have in there
```bash
piggybank show FILE [with t(ransactions)]
```
It will print a summary table of what is stored in a piggy bank.
`with t(ransactions)` will print also a table of all transactions stored in a
file.
### Examples:
```bash
piggybank show example.pb with t
```
# Configuration
Configuration file `piggybank.conf` is stored in directory specified by
`$XDG_CONFIG_HOME` environment variable or, if it isn't set, in `$HOME/.config`
(which is exactly where `$XDG_CONFIG_HOME` points to) on Linux. On Windows it
is stored right in `%APPDATA%`.
Currently there are two options:
- `default-currency` sets default currency used for new piggy banks. Its default
value is `SRUB`.
- `currency.<ISO>` defines a currency. By default there are: RUB, SRUB (has no
coins of 1 and 5 kopek since they are extremely rare now), BYN, UAH, USD,
EUR and GBP.
Options are simple key=value storage. Spaces between `=` symbol are necessary.
Currency is defined following way:
currency.<ISO> = <ISO>;<CURRENCY NAME>;<COINS COUNT>;{}<FRACTION SYMBOL>,
{}<CURRENCY SYMBOL>;<FACE VALUES>
That is best described with an example. Here it is:
currency.EXM = EXM;Example;6;{}c,{}E;5,10,25,50,100,200