;doc: bin: cleanups; categorise scripts
This commit is contained in:
parent
282be4c35d
commit
cb6fceb50b
@ -5,8 +5,8 @@
|
|||||||
<!-- toc -->
|
<!-- toc -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
This document is the README in the hledger repo's [bin][] directory,
|
This document is the README in the hledger repo's [bin] directory,
|
||||||
and is also published as [Scripts][] on hledger.org.
|
and is also published as [Scripts] on hledger.org.
|
||||||
Here we collect some extra scripts you can use to augment the core hledger tools.
|
Here we collect some extra scripts you can use to augment the core hledger tools.
|
||||||
These are either useful in themselves, or serve as examples/starting points for making your own scripts.
|
These are either useful in themselves, or serve as examples/starting points for making your own scripts.
|
||||||
|
|
||||||
@ -19,34 +19,34 @@ For a longer list of PTA tools (not hledger-specific), see [plaintextaccounting.
|
|||||||
|
|
||||||
## About hledger scripts
|
## About hledger scripts
|
||||||
|
|
||||||
(See also: [Scripting hledger][])
|
|
||||||
|
|
||||||
We are using the word "scripts" broadly here, meaning:
|
We are using the word "scripts" broadly here, meaning:
|
||||||
|
|
||||||
- shell aliases, functions, or executable shell script files
|
- shell aliases, functions, or executable shell script files
|
||||||
- or programs written in other languages like Python
|
- or programs written in other languages like Python
|
||||||
- or programs written in Haskell, optionally compiled
|
- or programs written in Haskell, optionally compiled
|
||||||
|
|
||||||
which either:
|
We can categorise scripts by how they use hledger:
|
||||||
|
|
||||||
- don't use hledger, but perform tasks related to it
|
- *hledger-related* scripts don't use hledger directly, but perform tasks related to it
|
||||||
- or run the hledger command line tools in some useful way
|
- *hledger-running* scripts run hledger's command line interface in some useful way
|
||||||
- or call hledger as a library, to do more powerful things
|
- *hledger-integrated* scripts call hledger as a library, to do more powerful things. These must be written in Haskell.
|
||||||
(these must be written in Haskell).
|
|
||||||
|
|
||||||
and can be:
|
Also,
|
||||||
|
|
||||||
|
- any script or program file which is named `hledger-something`, executable,
|
||||||
|
and in your shell's PATH, is called an *[add-on command](https://hledger.org/dev/hledger.html#addons)*.
|
||||||
|
These will show up in hledger's [commands list](hledger.html#commands), much like the built-in commands.
|
||||||
|
Many of the scripts listed below are add-on commands.
|
||||||
|
|
||||||
|
Scripts can be: <!-- also vary in availability/packaging status; they -->
|
||||||
|
|
||||||
- local, used only by you
|
- local, used only by you
|
||||||
- or shared online for use by others
|
- or shared online
|
||||||
- or published in the main hledger repo's bin directory
|
- or included in the bin directory and listed on this page
|
||||||
- or published as haskell packages, and possibly system packages
|
- (or published as haskell/system packages, and then we might stop calling them "scripts").
|
||||||
|
|
||||||
And furthermore,
|
See also: [Scripting hledger]
|
||||||
|
|
||||||
- a script or program which is named `hledger-something`, executable,
|
|
||||||
and in your shell's PATH, is called an [add-on command](https://hledger.org/dev/hledger.html#addons).
|
|
||||||
These will show up in hledger's commands list (`hledger`), and can
|
|
||||||
be invoked with (`hledger something`), much like built-in commands.
|
|
||||||
|
|
||||||
## Installing
|
## Installing
|
||||||
|
|
||||||
@ -76,7 +76,7 @@ $ export PATH=$PATH:$PWD/bin
|
|||||||
Scripts with no file extension are mostly [bash] scripts except where noted.
|
Scripts with no file extension are mostly [bash] scripts except where noted.
|
||||||
if you don't want to install bash you might have to adapt them to your shell.
|
if you don't want to install bash you might have to adapt them to your shell.
|
||||||
|
|
||||||
Scripts with a `.hs` file extension are usually [stack scripts][], requiring [stack][] to run.
|
Scripts with a `.hs` file extension are usually [stack scripts], requiring [stack] to run.
|
||||||
If you don't want to install stack you can adapt them to be cabal scripts,
|
If you don't want to install stack you can adapt them to be cabal scripts,
|
||||||
or install their required libraries yourself and run/compile them with suitable runghc/ghc commands.
|
or install their required libraries yourself and run/compile them with suitable runghc/ghc commands.
|
||||||
See also [Working with hledger-*.hs scripts](#working-with-hledger-hs-scripts) below.
|
See also [Working with hledger-*.hs scripts](#working-with-hledger-hs-scripts) below.
|
||||||
@ -85,20 +85,11 @@ See also [Working with hledger-*.hs scripts](#working-with-hledger-hs-scripts) b
|
|||||||
[stack]: https://haskellstack.org
|
[stack]: https://haskellstack.org
|
||||||
[stack scripts]: https://docs.haskellstack.org/en/stable/GUIDE/#script-interpreter
|
[stack scripts]: https://docs.haskellstack.org/en/stable/GUIDE/#script-interpreter
|
||||||
|
|
||||||
## The bin scripts
|
|
||||||
|
|
||||||
Here are the scripts currently collected in the bin directory:
|
Here are the scripts currently collected in the bin directory:
|
||||||
|
|
||||||
### bashrc
|
## hledger-related scripts
|
||||||
|
|
||||||
[`bashrc`](https://github.com/simonmichael/hledger/blob/master/bin/bashrc)
|
|
||||||
contains many example bash aliases and functions.
|
|
||||||
After the above steps, as a bash user,
|
|
||||||
```cli
|
|
||||||
# customise FINDIR and LEDGER_FILE at the top of bin/bashrc
|
|
||||||
$ . bin/bashrc
|
|
||||||
$ fin # list the scripts available
|
|
||||||
```
|
|
||||||
|
|
||||||
### paypaljson
|
### paypaljson
|
||||||
|
|
||||||
@ -110,10 +101,22 @@ downloads the last 30 days of Paypal transactions (requires a free developer acc
|
|||||||
[`paypaljson2csv`](https://github.com/simonmichael/hledger/blob/master/bin/paypal2csv) (python)
|
[`paypaljson2csv`](https://github.com/simonmichael/hledger/blob/master/bin/paypal2csv) (python)
|
||||||
converts the above to CSV, with format similar to the CSV you could download manually.
|
converts the above to CSV, with format similar to the CSV you could download manually.
|
||||||
|
|
||||||
|
## hledger-running scripts
|
||||||
|
### bashrc
|
||||||
|
|
||||||
|
[`bashrc`](https://github.com/simonmichael/hledger/blob/master/bin/bashrc)
|
||||||
|
contains many example bash aliases and functions.
|
||||||
|
After installing the bin scripts: as a bash user,
|
||||||
|
```cli
|
||||||
|
# customise FINDIR and LEDGER_FILE at the top of bin/bashrc
|
||||||
|
$ . bin/bashrc
|
||||||
|
$ fin # list the scripts available
|
||||||
|
```
|
||||||
|
|
||||||
### hledger-simplebal
|
### hledger-simplebal
|
||||||
|
|
||||||
[`hledger-simplebal`](https://github.com/simonmichael/hledger/blob/master/bin/hledger-simplebal)
|
[`hledger-simplebal`](https://github.com/simonmichael/hledger/blob/master/bin/hledger-simplebal)
|
||||||
tries to reliably report a single balance number from hledger.
|
shows how to reliably report a single machine-readable number with hledger.
|
||||||
```cli
|
```cli
|
||||||
$ hledger simplebal
|
$ hledger simplebal
|
||||||
```
|
```
|
||||||
@ -138,10 +141,11 @@ $ hledger pijul status
|
|||||||
$ hledger pijul record [MSG]
|
$ hledger pijul record [MSG]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## hledger-integrated scripts
|
||||||
### hledger-addon-example
|
### hledger-addon-example
|
||||||
|
|
||||||
[`hledger-addon-example.hs`](https://github.com/simonmichael/hledger/blob/master/bin/hledger-addon-example.hs)
|
[`hledger-addon-example.hs`](https://github.com/simonmichael/hledger/blob/master/bin/hledger-addon-example.hs)
|
||||||
is a starter template for add-on commands written in Haskell (ie, the powerful kind).
|
is a starter template for hledger-integrated add-on commands written in Haskell.
|
||||||
It has the same structure as most of the other add-ons here:
|
It has the same structure as most of the other add-ons here:
|
||||||
- implemented as a stack script for robustness
|
- implemented as a stack script for robustness
|
||||||
- provides command line help
|
- provides command line help
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user