TAG 0.1.1.9
[darcs-mirror-hledger-irr.git] / hledger-irr.cabal.sh
1 #!/bin/bash
2
3 function cmd {
4     if [ -x dist/build/hledger-irr/hledger-irr ]
5     then
6         echo ' > $ hledger-irr' $1
7         eval dist/build/hledger-irr/hledger-irr $1 | sed -e 's/^/ > /'
8     else
9         echo "dist/build/hledger-irr/hledger-irr missing, rerun $0 to update description" >&2
10     fi
11 }
12
13 VERSION="$(darcs show tag | head -n 1)"
14
15 rm -f hledger-irr.cabal
16 exec >hledger-irr.cabal
17
18 cat <<__END__
19 Name:                   hledger-irr
20 Version:                ${VERSION:-0.0}
21 Synopsis:               computes the internal rate of return of an investment
22 License:                BSD3
23 License-file:           LICENSE
24 Author:                 Joachim Breitner <mail@joachim-breitner.de>
25 Maintainer:             Joachim Breitner <mail@joachim-breitner.de>
26 Category:               Finance
27 Build-type:             Simple
28 Cabal-version:          >= 1.8
29 Tested-with:            GHC >= 7.4.1 && <= 7.4.1
30 Description:
31  hledger-irr is a small command-line utility based on Simon
32  Michael's hledger library. Its purpose is to compute the internal rate of
33  return, also known as the effective interest rate, of a given investment.
34  After specifying what account holds the investment, and what account stores
35  the gains (or losses, or fees, or cost), it calculates the hypothetical
36  annualy rate of fixed rate investment that would have provided the exact same
37  cash flow.
38  .
39  As an example, consider the following irregular investment recorded in a file
40  called @speculation.ledger@. The account “Speculation” holds the investment which
41  could be, for example, a stock. Regularly, we make sure that the value of the
42  account matches the value of the stock, by moving money from or to the account
43  “Rate Gain”. It does not really matter when we adjust the price, as long as it
44  is correct at the end of our reporting period.
45  .
46 __END__
47 cat speculation.ledger | sed -e 's/^/ > /'
48 cat <<__END__
49  .
50  We can now calculate the rate of return for the whole time or just for parts
51  of it (and be freaked out by the volatility of the investment):
52  .
53 __END__
54 cmd '-f speculation.ledger -t "Rate Gain" -i Speculation -c'
55 cmd '-f speculation.ledger -t "Rate Gain" -i Speculation -e 2011-03-01'
56 cmd '-f speculation.ledger -t "Rate Gain" -i Speculation -b 2011-03-01'
57 cmd '-f speculation.ledger -t "Rate Gain" -i Speculation --monthly'
58 cat <<__END__
59  .
60  Running the utility with @--help@ gives a brief overview over the
61  available options:
62  .
63 __END__
64 cmd '--help'
65 cat <<__END__
66  .
67  Known bugs and issues:
68  .
69  * Currenlty, hledger-irr does not cope well with multiple commodities (e.g.
70    Euro and Dollar, or shares).
71  .
72  * Also, interest or fees that do not pass through the account selected by
73    @--investment-account@ are not taken into consideration.
74
75 Executable hledger-irr
76   Main-is:              Main.hs
77   Build-depends:
78     base >= 3 && < 5,
79     hledger-lib >= 1 && < 1.1,
80     Decimal,
81     time,
82     Cabal,
83     statistics >= 0.10,
84     text
85   Ghc-Options:          -Wall
86
87 source-repository head
88     type:     darcs
89     location: http://darcs.nomeata.de/hledger-irr
90
91 __END__
92
93 chmod -w hledger-irr.cabal