mirror of
https://github.com/simonmichael/hledger.git
synced 2024-12-27 12:24:43 +03:00
;doc: bin: cleanups; categorise scripts
This commit is contained in:
parent
282be4c35d
commit
cb6fceb50b
@ -5,8 +5,8 @@
|
||||
<!-- toc -->
|
||||
</div>
|
||||
|
||||
This document is the README in the hledger repo's [bin][] directory,
|
||||
and is also published as [Scripts][] on hledger.org.
|
||||
This document is the README in the hledger repo's [bin] directory,
|
||||
and is also published as [Scripts] on hledger.org.
|
||||
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.
|
||||
|
||||
@ -19,34 +19,34 @@ For a longer list of PTA tools (not hledger-specific), see [plaintextaccounting.
|
||||
|
||||
## About hledger scripts
|
||||
|
||||
(See also: [Scripting hledger][])
|
||||
|
||||
We are using the word "scripts" broadly here, meaning:
|
||||
|
||||
- shell aliases, functions, or executable shell script files
|
||||
- or programs written in other languages like Python
|
||||
- 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
|
||||
- or run the hledger command line tools in some useful way
|
||||
- or call hledger as a library, to do more powerful things
|
||||
(these must be written in Haskell).
|
||||
- *hledger-related* scripts don't use hledger directly, but perform tasks related to it
|
||||
- *hledger-running* scripts run hledger's command line interface in some useful way
|
||||
- *hledger-integrated* scripts call hledger as a library, to do more powerful things. 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
|
||||
- or shared online for use by others
|
||||
- or published in the main hledger repo's bin directory
|
||||
- or published as haskell packages, and possibly system packages
|
||||
- or shared online
|
||||
- or included in the bin directory and listed on this page
|
||||
- (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
|
||||
|
||||
@ -76,7 +76,7 @@ $ export PATH=$PATH:$PWD/bin
|
||||
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.
|
||||
|
||||
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,
|
||||
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.
|
||||
@ -85,20 +85,11 @@ See also [Working with hledger-*.hs scripts](#working-with-hledger-hs-scripts) b
|
||||
[stack]: https://haskellstack.org
|
||||
[stack scripts]: https://docs.haskellstack.org/en/stable/GUIDE/#script-interpreter
|
||||
|
||||
## The bin scripts
|
||||
|
||||
|
||||
Here are the scripts currently collected in the bin directory:
|
||||
|
||||
### bashrc
|
||||
|
||||
[`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
|
||||
```
|
||||
## hledger-related scripts
|
||||
|
||||
### 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)
|
||||
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`](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
|
||||
$ hledger simplebal
|
||||
```
|
||||
@ -138,10 +141,11 @@ $ hledger pijul status
|
||||
$ hledger pijul record [MSG]
|
||||
```
|
||||
|
||||
## hledger-integrated scripts
|
||||
### hledger-addon-example
|
||||
|
||||
[`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:
|
||||
- implemented as a stack script for robustness
|
||||
- provides command line help
|
||||
|
Loading…
Reference in New Issue
Block a user