Miscellaneous hledger add-ons, bash scripts, example make rules, etc. Things in this directory can be unfinished or out of date. See and for more about these scripts and scripting generally. ## About the hledger-*.hs scripts The hledger-*.hs [add-on commands] are mostly implemented as [stack] runghc scripts. See the comments in hledger-check-fancyassertions.hs for more about how to run or compile them. Short version: run bin/compile.sh to compile all scripts, and add this directory to your $PATH so they show up in hledger's command list. [add-on commands]: http://hledger.org/hledger.html#add-on-commands [stack]: https://www.fpcomplete.com/haskell/get-started [cabal]: https://www.haskell.org/cabal How to: ### Install all scripts as add-on commands $ git clone https://github.com/simonmichael/hledger $ hledger/bin/compile.sh $ export PATH=$PATH:$PWD/hledger/bin $ hledger # scripts now appear in commands list $ hledger-print-location --help # run a script directly $ hledger print-location -- --help # or run it via hledger. -- is needed before script options ### Create a new script The example scripts follow a template that implements hledger's standard command line options and help, so it's a good idea to use one as your starting point. The hledger- naming is not required, but it causes scripts to show up in the hledger commands list. On unix, your new script should be marked executable. This should do it: $ cd hledger $ cp bin/hledger-swap-dates.hs bin/hledger-foo.hs # and edit, at least the command name and help $ stack install string-qq # ensure any extra script deps are installed $ bin/hledger-cmd.hs --help foo [OPTIONS] My new foo command. ... $ stack ghc bin/hledger-cmd.hs $ hledger foo -- --help foo [OPTIONS] My new foo command. ... ### Run ghcid on a script $ stack install string-qq # ensure any extra script deps are installed $ stack exec -- ghcid bin/hledger-foo.hs ... Ok, one module loaded. All good (1 module, at 10:50:48) ### Run ghci on a script $ stack install string-qq # ensure any extra script deps are installed $ stack ghci bin/hledger-foo.hs ... Ok, one module loaded. ... ghci>