hledger 1.0.1 → 1.1
raw patch · 28 files changed
+1548/−906 lines, 28 filesdep −oldtimedep ~basedep ~hledgerdep ~hledger-libPVP ok
version bump matches the API change (PVP)
Dependencies removed: oldtime
Dependency ranges changed: base, hledger, hledger-lib, megaparsec
API changes (from Hackage documentation)
Files
- CHANGES +15/−0
- Hledger/Cli/Balance.hs +7/−7
- Hledger/Cli/CliOptions.hs +13/−5
- doc/hledger.1 +225/−26
- doc/hledger.1.info +261/−140
- doc/hledger.1.txt +359/−251
- doc/other/hledger-api.1 +7/−4
- doc/other/hledger-api.1.info +9/−7
- doc/other/hledger-api.1.txt +7/−5
- doc/other/hledger-ui.1 +31/−14
- doc/other/hledger-ui.1.info +34/−24
- doc/other/hledger-ui.1.txt +106/−92
- doc/other/hledger-web.1 +27/−16
- doc/other/hledger-web.1.info +31/−20
- doc/other/hledger-web.1.txt +45/−36
- doc/other/hledger_csv.5 +1/−1
- doc/other/hledger_csv.5.info +1/−1
- doc/other/hledger_csv.5.txt +1/−1
- doc/other/hledger_journal.5 +71/−30
- doc/other/hledger_journal.5.info +153/−112
- doc/other/hledger_journal.5.txt +119/−89
- doc/other/hledger_timeclock.5 +1/−1
- doc/other/hledger_timeclock.5.info +1/−1
- doc/other/hledger_timeclock.5.txt +1/−1
- doc/other/hledger_timedot.5 +1/−1
- doc/other/hledger_timedot.5.info +1/−1
- doc/other/hledger_timedot.5.txt +1/−1
- hledger.cabal +19/−19
CHANGES view
@@ -2,6 +2,21 @@ See also the project change log. +# 1.1 (2016/12/31)++## balance++- with -V, don't ignore market prices in the future (#453, #403)++- with -V and multiple same-date market prices, use the last parsed not the highest price (#403)++## misc++- fix non-existent "oldtime" dependency (#431)++- extra/hledger-equity.hs now generates valid journal format when there are multiple commodities++ # 1.0.1 (2016/10/27) - allow megaparsec 5.0 or 5.1
Hledger/Cli/Balance.hs view
@@ -246,7 +246,7 @@ ) where import Data.List (intercalate)-import Data.Maybe (fromMaybe, isJust)+import Data.Maybe import Data.Monoid -- import Data.Text (Text) import qualified Data.Text as T@@ -275,7 +275,7 @@ "show historical ending balance in each period (includes postings before report start date)\n " ,flagNone ["tree"] (\opts -> setboolopt "tree" opts) "show accounts as a tree; amounts include subaccounts (default in simple reports)" ,flagNone ["flat"] (\opts -> setboolopt "flat" opts) "show accounts as a list; amounts exclude subaccounts except when account is depth-clipped (default in multicolumn reports)\n "- ,flagNone ["value","V"] (setboolopt "value") "convert amounts to current market value in their default valuation commodity"+ ,flagNone ["value","V"] (setboolopt "value") "convert amounts to their market value on the report end date (using the most recent applicable market price, if any)" ,flagNone ["average","A"] (\opts -> setboolopt "average" opts) "show a row average column (in multicolumn reports)" ,flagNone ["row-total","T"] (\opts -> setboolopt "row-total" opts) "show a row total column (in multicolumn reports)" ,flagNone ["no-total","N"] (\opts -> setboolopt "no-total" opts) "omit the final total row"@@ -300,7 +300,7 @@ let format = outputFormatFromOpts opts interval = interval_ ropts baltype = balancetype_ ropts- valuedate = fromMaybe d $ queryEndDate False $ queryFromOpts d ropts+ mvaluedate <- reportEndDate j ropts -- shenanigans: use single/multiBalanceReport when we must, -- ie when there's a report interval, or --historical or -- cumulative. -- Otherwise prefer the older balanceReport since it can elide boring parents.@@ -314,16 +314,16 @@ | otherwise = ropts{accountlistmode_=ALTree} in singleBalanceReport ropts' (queryFromOpts d ropts) j | otherwise = balanceReport ropts (queryFromOpts d ropts) j- convert | value_ ropts = balanceReportValue j valuedate- | otherwise = id+ convert | value_ ropts = maybe id (balanceReportValue j) mvaluedate+ | otherwise = id render = case format of "csv" -> \ropts r -> (++ "\n") $ printCSV $ balanceReportAsCsv ropts r _ -> balanceReportAsText writeOutput opts $ render ropts $ convert report _ -> do let report = multiBalanceReport ropts (queryFromOpts d ropts) j- convert | value_ ropts = multiBalanceReportValue j valuedate- | otherwise = id+ convert | value_ ropts = maybe id (multiBalanceReportValue j) mvaluedate+ | otherwise = id render = case format of "csv" -> \ropts r -> (++ "\n") $ printCSV $ multiBalanceReportAsCsv ropts r _ -> case baltype of
Hledger/Cli/CliOptions.hs view
@@ -142,7 +142,7 @@ ,flagNone ["real","R"] (setboolopt "real") "include only non-virtual postings" ,flagReq ["depth"] (\s opts -> Right $ setopt "depth" s opts) "N" "hide accounts/postings deeper than N" ,flagNone ["empty","E"] (setboolopt "empty") "show items with zero amount, normally hidden"- ,flagNone ["cost","B"] (setboolopt "cost") "show amounts in their cost price's commodity"+ ,flagNone ["cost","B"] (setboolopt "cost") "convert amounts to their cost at transaction time (using the transaction price, if any)" ,flagNone ["anon"] (setboolopt "anon") "output ledger with anonymized accounts and payees." ] @@ -397,14 +397,22 @@ -- 1. options, 2. an environment variable, or 3. the default. -- Actually, returns one or more file paths. There will be more -- than one if multiple -f options were provided.+-- File paths can have a READER: prefix naming a reader/data format. journalFilePathFromOpts :: CliOpts -> IO [String] journalFilePathFromOpts opts = do f <- defaultJournalPath d <- getCurrentDirectory- mapM (expandPath d) $ ifEmpty (file_ opts) [f]- where- ifEmpty [] d = d- ifEmpty l _ = l+ case file_ opts of+ [] -> return [f]+ fs -> mapM (expandPathPreservingPrefix d) fs++expandPathPreservingPrefix :: FilePath -> PrefixedFilePath -> IO PrefixedFilePath+expandPathPreservingPrefix d prefixedf = do+ let (p,f) = splitReaderPrefix prefixedf+ f' <- expandPath d f+ return $ case p of+ Just p -> p ++ ":" ++ f'+ Nothing -> f' -- | Get the expanded, absolute output file path from options, -- or the default (-, meaning stdout).
doc/hledger.1 view
@@ -1,6 +1,6 @@ .\"t -.TH "hledger" "1" "October 2016" "hledger 1.0" "hledger User Manuals"+.TH "hledger" "1" "December 2016" "hledger 1.1" "hledger User Manuals" @@ -237,8 +237,9 @@ .PP If you\[aq]re really curious, add \f[C]\-\-debug=2\f[] for troubleshooting.+.SS General options .PP-\f[B]General options:\f[]+Always available, can be written before or after COMMAND. .TP .B \f[C]\-h\f[] show general usage (or after COMMAND, the command\[aq]s usage)@@ -291,8 +292,9 @@ ignore any failing balance assertions in the journal .RS .RE+.SS Reporting options .PP-\f[B]Common reporting options:\f[]+Common reporting options, must be written after COMMAND. .TP .B \f[C]\-b\ \-\-begin=DATE\f[] include postings/txns on or after this date@@ -371,7 +373,8 @@ .RE .TP .B \f[C]\-B\ \-\-cost\f[]-show amounts in their cost price\[aq]s commodity+convert amounts to their cost at transaction time (using the transaction+price, if any) .RS .RE .TP@@ -379,8 +382,6 @@ will transform the journal before any other processing by replacing the account name of every posting having the tag TAG with content VALUE by the account name "TAG:VALUE".-.RS-.RE The TAG will only match if it is a full\-length match. The pivot will only happen if the TAG is on a posting, not if it is on the transaction.@@ -393,18 +394,104 @@ show anonymized accounts and payees .RS .RE-.SS Multiple files .PP-You can specify multiple \f[C]\-f/\-\-file\ FILE\f[] options.-This is like combining all the files into one, except they can have-different formats.-Also directives and aliases in one file do not affect subsequent files-(if you need that, use the include directive instead).-.SS Repeated options-.PP-Otherwise, if a reporting option is repeated, the last one takes-precedence.+If a reporting option occurs more than once on the command line, the+last one takes precedence. Eg \-p jan \-p feb is equivalent to \-p feb.+.SS Input files+.PP+hledger reads transactions from a data file (and the add command writes+to it).+By default this file is \f[C]$HOME/.hledger.journal\f[] (or on Windows,+something like \f[C]C:/Users/USER/.hledger.journal\f[]).+You can override this with the \f[C]$LEDGER_FILE\f[] environment+variable:+.IP+.nf+\f[C]+$\ setenv\ LEDGER_FILE\ ~/finance/2016.journal+$\ hledger\ stats+\f[]+.fi+.PP+or with the \f[C]\-f/\-\-file\f[] option:+.IP+.nf+\f[C]+$\ hledger\ \-f\ /some/file\ stats+\f[]+.fi+.PP+The file name \f[C]\-\f[] (hyphen) means standard input:+.IP+.nf+\f[C]+$\ cat\ some.journal\ |\ hledger\ \-f\-+\f[]+.fi+.PP+Usually the data file is in hledger\[aq]s journal format, but it can+also be one of several other formats, listed below.+hledger detects the format automatically based on the file extension, or+if that is not recognised, by trying each built\-in "reader" in turn:+.PP+.TS+tab(@);+lw(10.7n) lw(33.2n) lw(26.1n).+T{+Reader:+T}@T{+Reads:+T}@T{+Used for file extensions:+T}+_+T{+\f[C]journal\f[]+T}@T{+hledger\[aq]s journal format, also some Ledger journals+T}@T{+\f[C]\&.journal\f[] \f[C]\&.j\f[] \f[C]\&.hledger\f[] \f[C]\&.ledger\f[]+T}+T{+\f[C]timeclock\f[]+T}@T{+timeclock files (precise time logging)+T}@T{+\f[C]\&.timeclock\f[]+T}+T{+\f[C]timedot\f[]+T}@T{+timedot files (approximate time logging)+T}@T{+\f[C]\&.timedot\f[]+T}+T{+\f[C]csv\f[]+T}@T{+comma\-separated values (data interchange)+T}@T{+\f[C]\&.csv\f[]+T}+.TE+.PP+If needed (eg to ensure correct error messages when a file has the+"wrong" extension), you can force a specific reader/format by prepending+it to the file path with a colon.+Examples:+.IP+.nf+\f[C]+$\ hledger\ \-f\ csv:/some/csv\-file.dat\ stats+$\ echo\ \[aq]i\ 2009/13/1\ 08:00:00\[aq]\ |\ hledger\ print\ \-ftimeclock:\-+\f[]+.fi+.PP+You can also specify multiple \f[C]\-f\f[] options, to read multiple+files as one big journal.+(Directives in one file will not affect the other files.+If you need that, use the include directive instead.) .SS Depth limiting .PP With the \f[C]\-\-depth\ N\f[] option, commands like account, balance@@ -470,6 +557,68 @@ T}@T{ T} .TE+.SS Report start & end date+.PP+Most hledger reports show the full span of time represented by the+journal data, by default.+So, the effective report start and end dates will be the earliest and+latest transaction or posting dates found in the journal.+.PP+Often you will want to see a shorter time span, such as the current+month.+You can specify a start and/or end date using \f[C]\-b/\-\-begin\f[],+\f[C]\-e/\-\-end\f[], \f[C]\-p/\-\-period\f[] or a \f[C]date:\f[] query+(described below).+All of these accept the smart date syntax.+One important thing to be aware of when specifying end dates: as in+Ledger, end dates are exclusive, so you need to write the date+\f[I]after\f[] the last day you want to include.+.PP+Examples:+.PP+.TS+tab(@);+l l.+T{+\f[C]\-b\ 2016/3/17\f[]+T}@T{+begin on St.+Patrick\[aq]s day 2016+T}+T{+\f[C]\-e\ 12/1\f[]+T}@T{+end at the start of december 1st of the current year (11/30 will be the+last date included)+T}+T{+\f[C]\-b\ thismonth\f[]+T}@T{+all transactions on or after the 1st of the current month+T}+T{+\f[C]\-p\ thismonth\f[]+T}@T{+all transactions in the current month+T}+T{+\f[C]date:2016/3/17\-\f[]+T}@T{+the above written as queries instead+T}+T{+\f[C]date:\-12/1\f[]+T}@T{+T}+T{+\f[C]date:thismonth\-\f[]+T}@T{+T}+T{+\f[C]date:thismonth\f[]+T}@T{+T}+.TE .SS Report intervals .PP A report interval can be specified so that commands like register,@@ -478,6 +627,7 @@ \f[C]\-W/\-\-weekly\f[], \f[C]\-M/\-\-monthly\f[], \f[C]\-Q/\-\-quarterly\f[], or \f[C]\-Y/\-\-yearly\f[]. More complex intervals may be specified with a period expression.+Report intervals can not be specified with a query, currently. .SS Period expressions .PP The \f[C]\-p/\-\-period\f[] option accepts period expressions, a@@ -1037,8 +1187,8 @@ .RE .TP .B \f[C]\-V\ \-\-value\f[]-convert amounts to current market value in their default valuation-commodity+convert amounts to their market value on the report end date (using the+most recent applicable market price, if any) .RS .RE .TP@@ -1292,15 +1442,64 @@ .fi .SS Market value .PP-The \f[C]\-V/\-\-value\f[] flag converts all the reported amounts to-their "current market value" using their default market price.-That is the latest market price (P directive) found in the journal (or-an included file), for the amount\[aq]s commodity, dated on or before-the report end date.+The \f[C]\-V/\-\-value\f[] flag converts the reported amounts to their+market value on the report end date, using the most recent applicable+market prices, when known.+Specifically, when there is a market price (P directive) for the+amount\[aq]s commodity, dated on or before the report end date (see+hledger \-> Report start & end date), the amount will be converted to+the price\[aq]s commodity.+If multiple applicable prices are defined, the latest\-dated one is used+(and if dates are equal, the one last parsed). .PP-Unlike Ledger, hledger\[aq]s \-V only uses the market prices recorded-with P directives, ignoring transaction prices recorded as part of-posting amounts (which \-B/\-\-cost uses).+For example:+.IP+.nf+\f[C]+#\ one\ euro\ is\ worth\ this\ many\ dollars\ from\ nov\ 1+P\ 2016/11/01\ €\ $1.10++#\ purchase\ some\ euros\ on\ nov\ 3+2016/11/3+\ \ \ \ assets:euros\ \ \ \ \ \ \ \ €100+\ \ \ \ assets:checking++#\ the\ euro\ is\ worth\ fewer\ dollars\ by\ dec\ 21+P\ 2016/12/21\ €\ $1.03+\f[]+.fi+.PP+How many euros do I have ?+.IP+.nf+\f[C]+$\ hledger\ \-f\ t.j\ bal\ euros+\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ €100\ \ assets:euros+\f[]+.fi+.PP+What are they worth on nov 3 ?+(no report end date specified, defaults to the last date in the journal)+.IP+.nf+\f[C]+$\ hledger\ \-f\ t.j\ bal\ euros\ \-V+\ \ \ \ \ \ \ \ \ \ \ \ \ $110.00\ \ assets:euros+\f[]+.fi+.PP+What are they worth on dec 21 ?+.IP+.nf+\f[C]+$\ hledger\ \-f\ t.j\ bal\ euros\ \-V\ \-e\ 2016/12/21+\ \ \ \ \ \ \ \ \ \ \ \ \ $103.00\ \ assets:euros+\f[]+.fi+.PP+Currently, hledger\[aq]s \-V only uses market prices recorded with P+directives, not transaction prices (unlike Ledger).+.PP Using \-B and \-V together is allowed. .SS Custom balance output .PP
doc/hledger.1.info view
@@ -4,7 +4,7 @@ File: hledger.1.info, Node: Top, Up: (dir) -hledger(1) hledger 1.0+hledger(1) hledger 1.1 ********************** This is hledger's command-line interface (there are also curses and web@@ -195,8 +195,26 @@ If you're really curious, add `--debug=2' for troubleshooting. - *General options:*+* Menu: +* General options::+* Reporting options::+* Input files::+* Depth limiting::+* Smart dates::+* Report start & end date::+* Report intervals::+* Period expressions::+* Regular expressions::+++File: hledger.1.info, Node: General options, Next: Reporting options, Up: OPTIONS++2.1 General options+===================++Always available, can be written before or after COMMAND.+ `-h' show general usage (or after COMMAND, the command's usage) @@ -228,8 +246,14 @@ `-I --ignore-assertions' ignore any failing balance assertions in the journal - *Common reporting options:*++File: hledger.1.info, Node: Reporting options, Next: Input files, Prev: General options, Up: OPTIONS +2.2 Reporting options+=====================++Common reporting options, must be written after COMMAND.+ `-b --begin=DATE' include postings/txns on or after this date @@ -277,54 +301,81 @@ show items with zero amount, normally hidden `-B --cost'- show amounts in their cost price's commodity+ convert amounts to their cost at transaction time (using the+ transaction price, if any) `--pivot TAG' will transform the journal before any other processing by replacing the account name of every posting having the tag TAG- with content VALUE by the account name "TAG:VALUE". The TAG will+ with content VALUE by the account name "TAG:VALUE". The TAG will only match if it is a full-length match. The pivot will only- happen if the TAG is on a posting, not if it is on the transaction.- If the tag value is a multi:level:account:name the new account- name will be "TAG:multi:level:account:name".+ happen if the TAG is on a posting, not if it is on the+ transaction. If the tag value is a multi:level:account:name the+ new account name will be "TAG:multi:level:account:name". `--anon' show anonymized accounts and payees -* Menu:--* Multiple files::-* Repeated options::-* Depth limiting::-* Smart dates::-* Report intervals::-* Period expressions::-* Regular expressions::+ If a reporting option occurs more than once on the command line, the+last one takes precedence. Eg -p jan -p feb is equivalent to -p feb. -File: hledger.1.info, Node: Multiple files, Next: Repeated options, Up: OPTIONS+File: hledger.1.info, Node: Input files, Next: Depth limiting, Prev: Reporting options, Up: OPTIONS -2.1 Multiple files-==================+2.3 Input files+=============== -You can specify multiple `-f/--file FILE' options. This is like-combining all the files into one, except they can have different-formats. Also directives and aliases in one file do not affect-subsequent files (if you need that, use the include directive instead).+hledger reads transactions from a data file (and the add command writes+to it). By default this file is `$HOME/.hledger.journal' (or on+Windows, something like `C:/Users/USER/.hledger.journal'). You can+override this with the `$LEDGER_FILE' environment variable: --File: hledger.1.info, Node: Repeated options, Next: Depth limiting, Prev: Multiple files, Up: OPTIONS -2.2 Repeated options-====================+$ setenv LEDGER_FILE ~/finance/2016.journal+$ hledger stats -Otherwise, if a reporting option is repeated, the last one takes-precedence. Eg -p jan -p feb is equivalent to -p feb.+ or with the `-f/--file' option: ++$ hledger -f /some/file stats++ The file name `-' (hyphen) means standard input:+++$ cat some.journal | hledger -f-++ Usually the data file is in hledger's journal format, but it can+also be one of several other formats, listed below. hledger detects the+format automatically based on the file extension, or if that is not+recognised, by trying each built-in "reader" in turn:++Reader: Reads: Used for file extensions:+--------------------------------------------------------------------------- +`journal' hledger's journal format, also `.journal' `.j' `.hledger'+ some Ledger journals `.ledger'+`timeclock' timeclock files (precise time `.timeclock'+ logging) +`timedot' timedot files (approximate time `.timedot'+ logging) +`csv' comma-separated values (data `.csv'+ interchange) ++ If needed (eg to ensure correct error messages when a file has the+"wrong" extension), you can force a specific reader/format by prepending+it to the file path with a colon. Examples:+++$ hledger -f csv:/some/csv-file.dat stats+$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-++ You can also specify multiple `-f' options, to read multiple files+as one big journal. (Directives in one file will not affect the other+files. If you need that, use the include directive instead.)+ -File: hledger.1.info, Node: Depth limiting, Next: Smart dates, Prev: Repeated options, Up: OPTIONS+File: hledger.1.info, Node: Depth limiting, Next: Smart dates, Prev: Input files, Up: OPTIONS -2.3 Depth limiting+2.4 Depth limiting ================== With the `--depth N' option, commands like account, balance and@@ -332,9 +383,9 @@ to level N. Use this when you want a summary with less detail. -File: hledger.1.info, Node: Smart dates, Next: Report intervals, Prev: Depth limiting, Up: OPTIONS+File: hledger.1.info, Node: Smart dates, Next: Report start & end date, Prev: Depth limiting, Up: OPTIONS -2.4 Smart dates+2.5 Smart dates =============== hledger's user interfaces accept a flexible "smart date" syntax (unlike@@ -355,21 +406,51 @@ `today', `yesterday', `tomorrow' -File: hledger.1.info, Node: Report intervals, Next: Period expressions, Prev: Smart dates, Up: OPTIONS+File: hledger.1.info, Node: Report start & end date, Next: Report intervals, Prev: Smart dates, Up: OPTIONS -2.5 Report intervals+2.6 Report start & end date+===========================++Most hledger reports show the full span of time represented by the+journal data, by default. So, the effective report start and end dates+will be the earliest and latest transaction or posting dates found in+the journal.++ Often you will want to see a shorter time span, such as the current+month. You can specify a start and/or end date using `-b/--begin',+`-e/--end', `-p/--period' or a `date:' query (described below). All of+these accept the smart date syntax. One important thing to be aware of+when specifying end dates: as in Ledger, end dates are exclusive, so+you need to write the date _after_ the last day you want to include.++ Examples:++`-b 2016/3/17' begin on St. Patrick's day 2016+`-e 12/1' end at the start of december 1st of the current year (11/30 will be the last date included)+`-b thismonth' all transactions on or after the 1st of the current month+`-p thismonth' all transactions in the current month+`date:2016/3/17-' the above written as queries instead+`date:-12/1' +`date:thismonth-' +`date:thismonth' +++File: hledger.1.info, Node: Report intervals, Next: Period expressions, Prev: Report start & end date, Up: OPTIONS++2.7 Report intervals ==================== A report interval can be specified so that commands like register, balance and activity will divide their reports into multiple subperiods. The basic intervals can be selected with one of `-D/--daily', `-W/--weekly', `-M/--monthly', `-Q/--quarterly', or `-Y/--yearly'. More-complex intervals may be specified with a period expression.+complex intervals may be specified with a period expression. Report+intervals can not be specified with a query, currently. File: hledger.1.info, Node: Period expressions, Next: Regular expressions, Prev: Report intervals, Up: OPTIONS -2.6 Period expressions+2.8 Period expressions ====================== The `-p/--period' option accepts period expressions, a shorthand way of@@ -444,7 +525,7 @@ File: hledger.1.info, Node: Regular expressions, Prev: Period expressions, Up: OPTIONS -2.7 Regular expressions+2.9 Regular expressions ======================= hledger uses regular expressions in a number of places:@@ -824,8 +905,8 @@ account is depth-clipped (default in multicolumn reports) `-V --value'- convert amounts to current market value in their default valuation- commodity+ convert amounts to their market value on the report end date+ (using the most recent applicable market price, if any) `-A --average' show a row average column (in multicolumn mode)@@ -1052,17 +1133,53 @@ 4.4.4 Market value ------------------ -The `-V/--value' flag converts all the reported amounts to their-"current market value" using their default market price. That is the-latest market price (P directive) found in the journal (or an included-file), for the amount's commodity, dated on or before the report end-date.+The `-V/--value' flag converts the reported amounts to their market+value on the report end date, using the most recent applicable market+prices, when known. Specifically, when there is a market price (P+directive) for the amount's commodity, dated on or before the report end+date (see hledger -> Report start & end date), the amount will be+converted to the price's commodity. If multiple applicable prices are+defined, the latest-dated one is used (and if dates are equal, the one+last parsed). - Unlike Ledger, hledger's -V only uses the market prices recorded-with P directives, ignoring transaction prices recorded as part of-posting amounts (which -B/-cost uses). Using -B and -V together is-allowed.+ For example: ++# one euro is worth this many dollars from nov 1+P 2016/11/01 € $1.10++# purchase some euros on nov 3+2016/11/3+ assets:euros €100+ assets:checking++# the euro is worth fewer dollars by dec 21+P 2016/12/21 € $1.03++ How many euros do I have ?+++$ hledger -f t.j bal euros+ €100 assets:euros++ What are they worth on nov 3 ? (no report end date specified,+defaults to the last date in the journal)+++$ hledger -f t.j bal euros -V+ $110.00 assets:euros++ What are they worth on dec 21 ?+++$ hledger -f t.j bal euros -V -e 2016/12/21+ $103.00 assets:euros++ Currently, hledger's -V only uses market prices recorded with P+directives, not transaction prices (unlike Ledger).++ Using -B and -V together is allowed.+ File: hledger.1.info, Node: Custom balance output, Next: Output destination, Prev: Market value, Up: balance @@ -2114,95 +2231,99 @@ Ref: #examples1975 Node: OPTIONS3979 Ref: #options4083-Node: Multiple files9008-Ref: #multiple-files9133-Node: Repeated options9398-Ref: #repeated-options9550-Node: Depth limiting9670-Ref: #depth-limiting9815-Node: Smart dates10016-Ref: #smart-dates10155-Node: Report intervals11152-Ref: #report-intervals11305-Node: Period expressions11641-Ref: #period-expressions11806-Node: Regular expressions14141-Ref: #regular-expressions14283-Node: QUERIES15766-Ref: #queries15870-Node: COMMANDS19509-Ref: #commands19623-Node: accounts20296-Ref: #accounts20396-Node: activity21378-Ref: #activity21490-Node: add21849-Ref: #add21950-Node: balance24609-Ref: #balance24722-Node: Flat mode27695-Ref: #flat-mode27822-Node: Depth limited balance reports28241-Ref: #depth-limited-balance-reports28444-Node: Multicolumn balance reports28865-Ref: #multicolumn-balance-reports29067-Node: Market value33716-Ref: #market-value33880-Node: Custom balance output34373-Ref: #custom-balance-output34546-Node: Output destination36650-Ref: #output-destination36815-Node: CSV output37085-Ref: #csv-output37204-Node: balancesheet37601-Ref: #balancesheet37729-Node: cashflow38381-Ref: #cashflow38498-Node: help39188-Ref: #help39300-Node: incomestatement40137-Ref: #incomestatement40267-Node: info40994-Ref: #info41101-Node: man41463-Ref: #man41560-Node: print41963-Ref: #print42068-Node: register43414-Ref: #register43527-Node: Custom register output48019-Ref: #custom-register-output48150-Node: stats49447-Ref: #stats49553-Node: test50429-Ref: #test50516-Node: ADD-ON COMMANDS50883-Ref: #add-on-commands51019-Node: api52307-Ref: #api52399-Node: autosync52433-Ref: #autosync52548-Node: diff54863-Ref: #diff54973-Node: equity55637-Ref: #equity55751-Node: interest57079-Ref: #interest57196-Node: irr60280-Ref: #irr60393-Node: print-unique62768-Ref: #print-unique62898-Node: rewrite63156-Ref: #rewrite63275-Node: ui63804-Ref: #ui63904-Node: web63945-Ref: #web64033-Node: TROUBLESHOOTING64066-Ref: #troubleshooting64185-Node: Run-time problems64239-Ref: #run-time-problems64382-Node: Known limitations66326-Ref: #known-limitations66469+Node: General options6711+Ref: #general-options6840+Node: Reporting options7611+Ref: #reporting-options7764+Node: Input files9587+Ref: #input-files9727+Node: Depth limiting11564+Ref: #depth-limiting11704+Node: Smart dates11905+Ref: #smart-dates12051+Node: Report start & end date13048+Ref: #report-start-end-date13220+Node: Report intervals14296+Ref: #report-intervals14461+Node: Period expressions14860+Ref: #period-expressions15025+Node: Regular expressions17360+Ref: #regular-expressions17502+Node: QUERIES18985+Ref: #queries19089+Node: COMMANDS22728+Ref: #commands22842+Node: accounts23515+Ref: #accounts23615+Node: activity24597+Ref: #activity24709+Node: add25068+Ref: #add25169+Node: balance27828+Ref: #balance27941+Node: Flat mode30954+Ref: #flat-mode31081+Node: Depth limited balance reports31500+Ref: #depth-limited-balance-reports31703+Node: Multicolumn balance reports32124+Ref: #multicolumn-balance-reports32326+Node: Market value36975+Ref: #market-value37139+Node: Custom balance output38440+Ref: #custom-balance-output38613+Node: Output destination40717+Ref: #output-destination40882+Node: CSV output41152+Ref: #csv-output41271+Node: balancesheet41668+Ref: #balancesheet41796+Node: cashflow42448+Ref: #cashflow42565+Node: help43255+Ref: #help43367+Node: incomestatement44204+Ref: #incomestatement44334+Node: info45061+Ref: #info45168+Node: man45530+Ref: #man45627+Node: print46030+Ref: #print46135+Node: register47481+Ref: #register47594+Node: Custom register output52086+Ref: #custom-register-output52217+Node: stats53514+Ref: #stats53620+Node: test54496+Ref: #test54583+Node: ADD-ON COMMANDS54950+Ref: #add-on-commands55086+Node: api56374+Ref: #api56466+Node: autosync56500+Ref: #autosync56615+Node: diff58930+Ref: #diff59040+Node: equity59704+Ref: #equity59818+Node: interest61146+Ref: #interest61263+Node: irr64347+Ref: #irr64460+Node: print-unique66835+Ref: #print-unique66965+Node: rewrite67223+Ref: #rewrite67342+Node: ui67871+Ref: #ui67971+Node: web68012+Ref: #web68100+Node: TROUBLESHOOTING68133+Ref: #troubleshooting68252+Node: Run-time problems68306+Ref: #run-time-problems68449+Node: Known limitations70393+Ref: #known-limitations70536 End Tag Table
doc/hledger.1.txt view
@@ -177,7 +177,8 @@ If you're really curious, add --debug=2 for troubleshooting. - General options:+ General options+ Always available, can be written before or after COMMAND. -h show general usage (or after COMMAND, the command's usage) @@ -207,7 +208,8 @@ -I --ignore-assertions ignore any failing balance assertions in the journal - Common reporting options:+ Reporting options+ Common reporting options, must be written after COMMAND. -b --begin=DATE include postings/txns on or after this date@@ -256,29 +258,68 @@ show items with zero amount, normally hidden -B --cost- show amounts in their cost price's commodity+ convert amounts to their cost at transaction time (using the+ transaction price, if any) --pivot TAG- will transform the journal before any other processing by- replacing the account name of every posting having the tag TAG- with content VALUE by the account name "TAG:VALUE".- The TAG will only match if it is a full-length match. The pivot will- only happen if the TAG is on a posting, not if it is on the transac-- tion. If the tag value is a multi:level:account:name the new account- name will be "TAG:multi:level:account:name".+ will transform the journal before any other processing by+ replacing the account name of every posting having the tag TAG+ with content VALUE by the account name "TAG:VALUE". The TAG+ will only match if it is a full-length match. The pivot will+ only happen if the TAG is on a posting, not if it is on the+ transaction. If the tag value is a multi:level:account:name the+ new account name will be "TAG:multi:level:account:name". --anon show anonymized accounts and payees - Multiple files- You can specify multiple -f/--file FILE options. This is like combin-- ing all the files into one, except they can have different formats.- Also directives and aliases in one file do not affect subsequent files- (if you need that, use the include directive instead).+ If a reporting option occurs more than once on the command line, the+ last one takes precedence. Eg -p jan -p feb is equivalent to -p feb. - Repeated options- Otherwise, if a reporting option is repeated, the last one takes prece-- dence. Eg -p jan -p feb is equivalent to -p feb.+ Input files+ hledger reads transactions from a data file (and the add command writes+ to it). By default this file is $HOME/.hledger.journal (or on Windows,+ something like C:/Users/USER/.hledger.journal). You can override this+ with the $LEDGER_FILE environment variable: + $ setenv LEDGER_FILE ~/finance/2016.journal+ $ hledger stats++ or with the -f/--file option:++ $ hledger -f /some/file stats++ The file name - (hyphen) means standard input:++ $ cat some.journal | hledger -f-++ Usually the data file is in hledger's journal format, but it can also+ be one of several other formats, listed below. hledger detects the+ format automatically based on the file extension, or if that is not+ recognised, by trying each built-in "reader" in turn:+++ Reader: Reads: Used for file extensions:+ -----------------------------------------------------------------------------+ journal hledger's journal format, also .journal .j .hledger+ some Ledger journals .ledger+ timeclock timeclock files (precise time .timeclock+ logging)+ timedot timedot files (approximate time .timedot+ logging)+ csv comma-separated values (data .csv+ interchange)++ If needed (eg to ensure correct error messages when a file has the+ "wrong" extension), you can force a specific reader/format by prepend-+ ing it to the file path with a colon. Examples:++ $ hledger -f csv:/some/csv-file.dat stats+ $ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-++ You can also specify multiple -f options, to read multiple files as one+ big journal. (Directives in one file will not affect the other files.+ If you need that, use the include directive instead.)+ Depth limiting With the --depth N option, commands like account, balance and register will show only the uppermost accounts in the account tree, down to@@ -309,25 +350,59 @@ lastweek spaces are optional today, yesterday, tomorrow + Report start & end date+ Most hledger reports show the full span of time represented by the+ journal data, by default. So, the effective report start and end dates+ will be the earliest and latest transaction or posting dates found in+ the journal.++ Often you will want to see a shorter time span, such as the current+ month. You can specify a start and/or end date using -b/--begin,+ -e/--end, -p/--period or a date: query (described below). All of these+ accept the smart date syntax. One important thing to be aware of when+ specifying end dates: as in Ledger, end dates are exclusive, so you+ need to write the date after the last day you want to include.++ Examples:+++ -b 2016/3/17 begin on St. Patrick's+ day 2016+ -e 12/1 end at the start of decem-+ ber 1st of the current+ year (11/30 will be the+ last date included)+ -b thismonth all transactions on or+ after the 1st of the cur-+ rent month+ -p thismonth all transactions in the+ current month+ date:2016/3/17- the above written as+ queries instead+ date:-12/1+ date:thismonth-+ date:thismonth+ Report intervals A report interval can be specified so that commands like register, bal- ance and activity will divide their reports into multiple subperiods. The basic intervals can be selected with one of -D/--daily, -W/--weekly, -M/--monthly, -Q/--quarterly, or -Y/--yearly. More com-- plex intervals may be specified with a period expression.+ plex intervals may be specified with a period expression. Report+ intervals can not be specified with a query, currently. Period expressions- The -p/--period option accepts period expressions, a shorthand way of- expressing a start date, end date, and/or report interval all at once.+ The -p/--period option accepts period expressions, a shorthand way of+ expressing a start date, end date, and/or report interval all at once. - Here's a basic period expression specifying the first quarter of 2009.- Note, hledger always treats start dates as inclusive and end dates as+ Here's a basic period expression specifying the first quarter of 2009.+ Note, hledger always treats start dates as inclusive and end dates as exclusive: -p "from 2009/1/1 to 2009/4/1" - Keywords like "from" and "to" are optional, and so are the spaces, as- long as you don't run two dates together. "to" can also be written as+ Keywords like "from" and "to" are optional, and so are the spaces, as+ long as you don't run two dates together. "to" can also be written as "-". These are equivalent to the above: @@ -335,7 +410,7 @@ -p2009/1/1to2009/4/1 -p2009/1/1-2009/4/1 - Dates are smart dates, so if the current year is 2009, the above can+ Dates are smart dates, so if the current year is 2009, the above can also be written as: @@ -351,25 +426,25 @@ 1, 2009 -p "from 2009/1" the same -p "from 2009" the same- -p "to 2009" everything before january+ -p "to 2009" everything before january 1, 2009 - A single date with no "from" or "to" defines both the start and end+ A single date with no "from" or "to" defines both the start and end date like so: - -p "2009" the year 2009; equivalent+ -p "2009" the year 2009; equivalent to "2009/1/1 to 2010/1/1"- -p "2009/1" the month of jan; equiva-+ -p "2009/1" the month of jan; equiva- lent to "2009/1/1 to 2009/2/1"- -p "2009/1/1" just that day; equivalent+ -p "2009/1/1" just that day; equivalent to "2009/1/1 to 2009/1/2" - The argument of -p can also begin with, or be, a report interval- expression. The basic report intervals are daily, weekly, monthly,+ The argument of -p can also begin with, or be, a report interval+ expression. The basic report intervals are daily, weekly, monthly, quarterly, or yearly, which have the same effect as the -D,-W,-M,-Q, or- -Y flags. Between report interval and start/end dates (if any), the+ -Y flags. Between report interval and start/end dates (if any), the word in is optional. Examples: @@ -378,7 +453,7 @@ -p "quarterly" The following more complex report intervals are also supported:- biweekly, bimonthly, every N days|weeks|months|quarters|years,+ biweekly, bimonthly, every N days|weeks|months|quarters|years, every Nth day [of month], every Nth day of week. Examples:@@ -388,12 +463,12 @@ -p "every 2 weeks" -p "every 5 days from 1/3" - Show historical balances at end of 15th each month (N is exclusive end+ Show historical balances at end of 15th each month (N is exclusive end date): hledger balance -H -p "every 16th day" - Group postings from start of wednesday to end of next tuesday (N is+ Group postings from start of wednesday to end of next tuesday (N is start date and exclusive end date): hledger register checking -p "every 3rd day of week"@@ -401,56 +476,56 @@ Regular expressions hledger uses regular expressions in a number of places: - o query terms, on the command line and in the hledger-web search form:+ o query terms, on the command line and in the hledger-web search form: REGEX, desc:REGEX, cur:REGEX, tag:...=REGEX o CSV rules conditional blocks: if REGEX ... - o account alias directives and options: alias /REGEX/ = REPLACEMENT,+ o account alias directives and options: alias /REGEX/ = REPLACEMENT, --alias /REGEX/=REPLACEMENT - hledger's regular expressions come from the regex-tdfa library. In+ hledger's regular expressions come from the regex-tdfa library. In general they: o are case insensitive - o are infix matching (do not need to match the entire thing being+ o are infix matching (do not need to match the entire thing being matched) o are POSIX extended regular expressions o also support GNU word boundaries (\<, \>, \b, \B) - o and parenthesised capturing groups and numeric backreferences in+ o and parenthesised capturing groups and numeric backreferences in replacement strings o do not support mode modifiers like (?s) Some things to note: - o In the alias directive and --alias option, regular expressions must- be enclosed in forward slashes (/REGEX/). Elsewhere in hledger,+ o In the alias directive and --alias option, regular expressions must+ be enclosed in forward slashes (/REGEX/). Elsewhere in hledger, these are not required. o To match a regular expression metacharacter like $ as a literal char- acter, prepend a backslash. Eg to search for amounts with the dollar sign in hledger-web, write cur:\$. - o On the command line, some metacharacters like $ have a special mean-+ o On the command line, some metacharacters like $ have a special mean- ing to the shell and so must be escaped a second time, with single or- double quotes or another backslash. Eg, to match amounts with the+ double quotes or another backslash. Eg, to match amounts with the dollar sign from the command line, write cur:'\$' or cur:\\$. QUERIES- One of hledger's strengths is being able to quickly report on precise- subsets of your data. Most commands accept an optional query expres-- sion, written as arguments after the command name, to filter the data- by date, account name or other criteria. The syntax is similar to a+ One of hledger's strengths is being able to quickly report on precise+ subsets of your data. Most commands accept an optional query expres-+ sion, written as arguments after the command name, to filter the data+ by date, account name or other criteria. The syntax is similar to a web search: one or more space-separated search terms, quotes to enclose- whitespace, optional prefixes to match specific fields. Multiple+ whitespace, optional prefixes to match specific fields. Multiple search terms are combined as follows: - All commands except print: show transactions/postings/accounts which+ All commands except print: show transactions/postings/accounts which match (or negatively match) o any of the description terms AND@@ -477,22 +552,22 @@ same as above amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N- match postings with a single-commodity amount that is equal to,- less than, or greater than N. (Multi-commodity amounts are not+ match postings with a single-commodity amount that is equal to,+ less than, or greater than N. (Multi-commodity amounts are not tested, and will always match.) The comparison has two modes: if N is preceded by a + or - sign (or is 0), the two signed numbers- are compared. Otherwise, the absolute magnitudes are compared,+ are compared. Otherwise, the absolute magnitudes are compared, ignoring sign. code:REGEX match by transaction code (eg check number) cur:REGEX- match postings or transactions including any amounts whose cur-- rency/commodity symbol is fully matched by REGEX. (For a par-+ match postings or transactions including any amounts whose cur-+ rency/commodity symbol is fully matched by REGEX. (For a par- tial match, use .*REGEX.*). Note, to match characters which are regex-significant, like the dollar sign ($), you need to prepend- \. And when using the command line you need to add one more+ \. And when using the command line you need to add one more level of quoting to hide it from the shell, so eg do: hledger print cur:'\$' or hledger print cur:\\$. @@ -501,29 +576,29 @@ date:PERIODEXPR match dates within the specified period. PERIODEXPR is a period- expression (with no report interval). Examples: date:2016,- date:thismonth, date:2000/2/1-2/15, date:lastweek-. If the- --date2 command line flag is present, this matches secondary+ expression (with no report interval). Examples: date:2016,+ date:thismonth, date:2000/2/1-2/15, date:lastweek-. If the+ --date2 command line flag is present, this matches secondary dates instead. date2:PERIODEXPR match secondary dates within the specified period. depth:N- match (or display, depending on command) accounts at or above+ match (or display, depending on command) accounts at or above this depth real:, real:0 match real or virtual postings respectively status:*, status:!, status:- match cleared, pending, or uncleared/pending transactions+ match cleared, pending, or uncleared/pending transactions respectively tag:REGEX[=REGEX]- match by tag name, and optionally also by tag value. Note a- tag: query is considered to match a transaction if it matches- any of the postings. Also remember that postings inherit the+ match by tag name, and optionally also by tag value. Note a+ tag: query is considered to match a transaction if it matches+ any of the postings. Also remember that postings inherit the tags of their parent transaction. not: before any of the above negates the match.@@ -531,24 +606,24 @@ inacct:ACCTNAME a special term used automatically when you click an account name in hledger-web, specifying the account register we are currently- in (selects the transactions of that account and how to show- them, can be filtered further with acct etc). Not supported+ in (selects the transactions of that account and how to show+ them, can be filtered further with acct etc). Not supported elsewhere in hledger. Some of these can also be expressed as command-line options (eg depth:2- is equivalent to --depth 2). Generally you can mix options and query- arguments, and the resulting query will be their intersection (perhaps+ is equivalent to --depth 2). Generally you can mix options and query+ arguments, and the resulting query will be their intersection (perhaps excluding the -p/--period option). COMMANDS- hledger provides a number of subcommands; hledger with no arguments+ hledger provides a number of subcommands; hledger with no arguments shows a list. If you install additional hledger-* packages, or if you put programs or- scripts named hledger-NAME in your PATH, these will also be listed as+ scripts named hledger-NAME in your PATH, these will also be listed as subcommands. - Run a subcommand by writing its name as first argument (eg+ Run a subcommand by writing its name as first argument (eg hledger incomestatement). You can also write any unambiguous prefix of a command name (hledger inc), or one of the standard short aliases dis- played in the command list (hledger is).@@ -563,14 +638,14 @@ --drop=N in flat mode: omit N leading account name parts - This command lists all account names that are in use (ie, all the- accounts which have at least one transaction posting to them). With+ This command lists all account names that are in use (ie, all the+ accounts which have at least one transaction posting to them). With query arguments, only matched account names are shown. - It shows a flat list by default. With --tree, it uses indentation to+ It shows a flat list by default. With --tree, it uses indentation to show the account hierarchy. - In flat mode you can add --drop N to omit the first few account name+ In flat mode you can add --drop N to omit the first few account name components. Examples:@@ -613,8 +688,8 @@ activity Show an ascii barchart of posting counts per interval. - The activity command displays an ascii histogram showing transaction- counts by day, week, month or other reporting interval (by day is the+ The activity command displays an ascii histogram showing transaction+ counts by day, week, month or other reporting interval (by day is the default). With query arguments, it counts only matched transactions. $ hledger activity --quarterly@@ -627,24 +702,24 @@ Prompt for transactions and add them to the journal. --no-new-accounts- don't allow creating new accounts; helps prevent typos when+ don't allow creating new accounts; helps prevent typos when entering account names - Many hledger users edit their journals directly with a text editor, or- generate them from CSV. For more interactive data entry, there is the- add command, which prompts interactively on the console for new trans-- actions, and appends them to the journal file (if there are multiple+ Many hledger users edit their journals directly with a text editor, or+ generate them from CSV. For more interactive data entry, there is the+ add command, which prompts interactively on the console for new trans-+ actions, and appends them to the journal file (if there are multiple -f FILE options, the first file is used.) Existing transactions are not- changed. This is the only hledger command that writes to the journal+ changed. This is the only hledger command that writes to the journal file. To use it, just run hledger add and follow the prompts. You can add as- many transactions as you like; when you are finished, enter . or press+ many transactions as you like; when you are finished, enter . or press control-d or control-c to exit. Features: - o add tries to provide useful defaults, using the most similar recent+ o add tries to provide useful defaults, using the most similar recent transaction (by description) as a template. o You can also set the initial defaults with command line arguments.@@ -652,20 +727,20 @@ o Readline-style edit keys can be used during data entry. o The tab key will auto-complete whenever possible - accounts, descrip-- tions, dates (yesterday, today, tomorrow). If the input area is+ tions, dates (yesterday, today, tomorrow). If the input area is empty, it will insert the default value. - o If the journal defines a default commodity, it will be added to any+ o If the journal defines a default commodity, it will be added to any bare numbers entered. o A parenthesised transaction code may be entered following a date. o Comments and tags may be entered following a description or amount. - o If you make a mistake, enter < at any prompt to restart the transac-+ o If you make a mistake, enter < at any prompt to restart the transac- tion. - o Input prompts are displayed in a different colour when the terminal+ o Input prompts are displayed in a different colour when the terminal supports it. Example (see the tutorial for a detailed explanation):@@ -702,7 +777,7 @@ show balance change in each period (default) --cumulative- show balance change accumulated across periods (in multicolumn+ show balance change accumulated across periods (in multicolumn reports) -H --historical@@ -716,8 +791,8 @@ account is depth-clipped (default in multicolumn reports) -V --value- convert amounts to current market value in their default valua-- tion commodity+ convert amounts to their market value on the report end date+ (using the most recent applicable market price, if any) -A --average show a row average column (in multicolumn mode)@@ -741,10 +816,10 @@ select the output format. Supported formats: txt, csv. -o FILE --output-file=FILE- write output to FILE. A file extension matching one of the+ write output to FILE. A file extension matching one of the above formats selects that format. - The balance command displays accounts and balances. It is hledger's+ The balance command displays accounts and balances. It is hledger's most featureful and most useful command. $ hledger balance@@ -761,24 +836,24 @@ -------------------- 0 - More precisely, the balance command shows the change to each account's+ More precisely, the balance command shows the change to each account's balance caused by all (matched) postings. In the common case where you- do not filter by date and your journal sets the correct opening bal-+ do not filter by date and your journal sets the correct opening bal- ances, this is the same as the account's ending balance. - By default, accounts are displayed hierarchically, with subaccounts+ By default, accounts are displayed hierarchically, with subaccounts indented below their parent. "Boring" accounts, which contain a single interesting subaccount and no balance of their own, are elided into the- following line for more compact output. (Use --no-elide to prevent+ following line for more compact output. (Use --no-elide to prevent this.) - Each account's balance is the "inclusive" balance - it includes the+ Each account's balance is the "inclusive" balance - it includes the balances of any subaccounts. - Accounts which have zero balance (and no non-zero subaccounts) are+ Accounts which have zero balance (and no non-zero subaccounts) are omitted. Use -E/--empty to show them. - A final total is displayed by default; use -N/--no-total to suppress+ A final total is displayed by default; use -N/--no-total to suppress it: $ hledger balance -p 2008/6 expenses --no-total@@ -788,9 +863,9 @@ Flat mode To see a flat list of full account names instead of the default hierar-- chical display, use --flat. In this mode, accounts (unless+ chical display, use --flat. In this mode, accounts (unless depth-clipped) show their "exclusive" balance, excluding any subaccount- balances. In this mode, you can also use --drop N to omit the first+ balances. In this mode, you can also use --drop N to omit the first few account name components. $ hledger balance -p 2008/6 expenses -N --flat --drop 1@@ -798,9 +873,9 @@ $1 supplies Depth limited balance reports- With --depth N, balance shows accounts only to the specified depth.- This is very useful to show a complex charts of accounts in less- detail. In flat mode, balances from accounts below the depth limit+ With --depth N, balance shows accounts only to the specified depth.+ This is very useful to show a complex charts of accounts in less+ detail. In flat mode, balances from accounts below the depth limit will be shown as part of a parent account at the depth limit. $ hledger balance -N --depth 1@@ -810,12 +885,12 @@ $1 liabilities Multicolumn balance reports- With a reporting interval, multiple balance columns will be shown, one- for each report period. There are three types of multi-column balance+ With a reporting interval, multiple balance columns will be shown, one+ for each report period. There are three types of multi-column balance report, showing different information: 1. By default: each column shows the sum of postings in that period, ie- the account's change of balance in that period. This is useful eg+ the account's change of balance in that period. This is useful eg for a monthly income statement: $ hledger balance --quarterly income expenses -E@@ -830,8 +905,8 @@ -------------------++--------------------------------- || $-1 $1 0 0 - 2. With --cumulative: each column shows the ending balance for that- period, accumulating the changes across periods, starting from 0 at+ 2. With --cumulative: each column shows the ending balance for that+ period, accumulating the changes across periods, starting from 0 at the report start date: $ hledger balance --quarterly income expenses -E --cumulative@@ -847,8 +922,8 @@ || $-1 0 0 0 3. With --historical/-H: each column shows the actual historical ending- balance for that period, accumulating the changes across periods,- starting from the actual balance at the report start date. This is+ balance for that period, accumulating the changes across periods,+ starting from the actual balance at the report start date. This is useful eg for a multi-period balance sheet, and when you are showing only the data after a certain start date: @@ -864,26 +939,26 @@ ----------------------++------------------------------------- || 0 0 0 - Multi-column balance reports display accounts in flat mode by default;+ Multi-column balance reports display accounts in flat mode by default; to see the hierarchy, use --tree. - With a reporting interval (like --quarterly above), the report- start/end dates will be adjusted if necessary so that they encompass+ With a reporting interval (like --quarterly above), the report+ start/end dates will be adjusted if necessary so that they encompass the displayed report periods. This is so that the first and last peri- ods will be "full" and comparable to the others. - The -E/--empty flag does two things in multicolumn balance reports:- first, the report will show all columns within the specified report- period (without -E, leading and trailing columns with all zeroes are- not shown). Second, all accounts which existed at the report start- date will be considered, not just the ones with activity during the+ The -E/--empty flag does two things in multicolumn balance reports:+ first, the report will show all columns within the specified report+ period (without -E, leading and trailing columns with all zeroes are+ not shown). Second, all accounts which existed at the report start+ date will be considered, not just the ones with activity during the report period (use -E to include low-activity accounts which would oth- erwise would be omitted). The -T/--row-total flag adds an additional column showing the total for each row. - The -A/--average flag adds a column showing the average value in each+ The -A/--average flag adds a column showing the average value in each row. Here's an example of all three:@@ -905,17 +980,50 @@ # Average is rounded to the dollar here since all journal amounts are Market value- The -V/--value flag converts all the reported amounts to their "current- market value" using their default market price. That is the latest- market price (P directive) found in the journal (or an included file),- for the amount's commodity, dated on or before the report end date.+ The -V/--value flag converts the reported amounts to their market value+ on the report end date, using the most recent applicable market prices,+ when known. Specifically, when there is a market price (P directive)+ for the amount's commodity, dated on or before the report end date (see+ hledger -> Report start & end date), the amount will be converted to+ the price's commodity. If multiple applicable prices are defined, the+ latest-dated one is used (and if dates are equal, the one last parsed). - Unlike Ledger, hledger's -V only uses the market prices recorded with P- directives, ignoring transaction prices recorded as part of posting- amounts (which -B/--cost uses). Using -B and -V together is allowed.+ For example: + # one euro is worth this many dollars from nov 1+ P 2016/11/01 $1.10++ # purchase some euros on nov 3+ 2016/11/3+ assets:euros 100+ assets:checking++ # the euro is worth fewer dollars by dec 21+ P 2016/12/21 $1.03++ How many euros do I have ?++ $ hledger -f t.j bal euros+ 100 assets:euros++ What are they worth on nov 3 ? (no report end date specified, defaults+ to the last date in the journal)++ $ hledger -f t.j bal euros -V+ $110.00 assets:euros++ What are they worth on dec 21 ?++ $ hledger -f t.j bal euros -V -e 2016/12/21+ $103.00 assets:euros++ Currently, hledger's -V only uses market prices recorded with P direc-+ tives, not transaction prices (unlike Ledger).++ Using -B and -V together is allowed.+ Custom balance output- In simple (non-multi-column) balance reports, you can customise the+ In simple (non-multi-column) balance reports, you can customise the output with --format FMT: $ hledger balance --format "%20(account) %12(total)"@@ -933,7 +1041,7 @@ 0 The FMT format string (plus a newline) specifies the formatting applied- to each account/balance pair. It may contain any suitable text, with+ to each account/balance pair. It may contain any suitable text, with data fields interpolated like so: %[MIN][.MAX](FIELDNAME)@@ -944,14 +1052,14 @@ o FIELDNAME must be enclosed in parentheses, and can be one of: - o depth_spacer - a number of spaces equal to the account's depth, or+ o depth_spacer - a number of spaces equal to the account's depth, or if MIN is specified, MIN * depth spaces. o account - the account's name o total - the account's balance/posted total, right justified - Also, FMT can begin with an optional prefix to control how multi-com-+ Also, FMT can begin with an optional prefix to control how multi-com- modity amounts are rendered: o %_ - render on multiple lines, bottom-aligned (the default)@@ -960,7 +1068,7 @@ o %, - render on one line, comma-separated - There are some quirks. Eg in one-line mode, %(depth_spacer) has no+ There are some quirks. Eg in one-line mode, %(depth_spacer) has no effect, instead %(account) has indentation built in. Experimentation may be needed to get pleasing results. @@ -968,19 +1076,19 @@ o %(total) - the account's total - o %-20.20(account) - the account's name, left justified, padded to 20+ o %-20.20(account) - the account's name, left justified, padded to 20 characters and clipped at 20 characters - o %,%-50(account) %25(total) - account name padded to 50 characters,- total padded to 20 characters, with multiple commodities rendered on+ o %,%-50(account) %25(total) - account name padded to 50 characters,+ total padded to 20 characters, with multiple commodities rendered on one line - o %20(total) %2(depth_spacer)%-(account) - the default format for the+ o %20(total) %2(depth_spacer)%-(account) - the default format for the single-column balance report Output destination- The balance, print, register and stats commands can write their output- to a destination other than the console. This is controlled by the+ The balance, print, register and stats commands can write their output+ to a destination other than the console. This is controlled by the -o/--output-file option. $ hledger balance -o - # write to stdout (the default)@@ -988,8 +1096,8 @@ CSV output The balance, print and register commands can write their output as CSV.- This is useful for exporting data to other applications, eg to make- charts in a spreadsheet. This is controlled by the -O/--output-format+ This is useful for exporting data to other applications, eg to make+ charts in a spreadsheet. This is controlled by the -O/--output-format option, or by specifying a .csv file extension with -o/--output-file. $ hledger balance -O csv # write CSV to stdout@@ -1003,8 +1111,8 @@ --drop=N in flat mode: omit N leading account name parts - This command displays a simple balance sheet. It currently assumes- that you have top-level accounts named asset and liability (plural+ This command displays a simple balance sheet. It currently assumes+ that you have top-level accounts named asset and liability (plural forms also allowed.) $ hledger balancesheet@@ -1034,9 +1142,9 @@ --drop=N in flat mode: omit N leading account name parts - This command displays a simple cashflow statement It shows the change- in all "cash" (ie, liquid assets) accounts for the period. It cur-- rently assumes that cash accounts are under a top-level account named+ This command displays a simple cashflow statement It shows the change+ in all "cash" (ie, liquid assets) accounts for the period. It cur-+ rently assumes that cash accounts are under a top-level account named asset and do not contain receivable or A/R (plural forms also allowed.) $ hledger cashflow@@ -1056,11 +1164,11 @@ help Show any of the hledger manuals. - The help command displays any of the main hledger man pages. (Unlike- hledger --help, which displays only the hledger man page.) Run it with- no arguments to list available topics (their names are shortened for- easier typing), and run hledger help TOPIC to select one. The output- is similar to a man page, but fixed width. It may be long, so you may+ The help command displays any of the main hledger man pages. (Unlike+ hledger --help, which displays only the hledger man page.) Run it with+ no arguments to list available topics (their names are shortened for+ easier typing), and run hledger help TOPIC to select one. The output+ is similar to a man page, but fixed width. It may be long, so you may wish to pipe it into a pager. See also info and man. $ hledger help@@ -1089,8 +1197,8 @@ --drop=N in flat mode: omit N leading account name parts - This command displays a simple income statement. It currently assumes- that you have top-level accounts named income (or revenue) and expense+ This command displays a simple income statement. It currently assumes+ that you have top-level accounts named income (or revenue) and expense (plural forms also allowed.) $ hledger incomestatement@@ -1117,37 +1225,37 @@ info Show any of the hledger manuals using info. - The info command displays any of the hledger reference manuals using- the info hypertextual documentation viewer. This can be a very effi-- cient way to browse large manuals. It requires the "info" program to+ The info command displays any of the hledger reference manuals using+ the info hypertextual documentation viewer. This can be a very effi-+ cient way to browse large manuals. It requires the "info" program to be available in your PATH. - As with help, run it with no arguments to list available topics (manu-+ As with help, run it with no arguments to list available topics (manu- als). man Show any of the hledger manuals using man. - The man command displays any of the hledger reference manuals using- man, the standard documentation viewer on unix systems. This will fit- the text to your terminal width, and probably invoke a pager automati-+ The man command displays any of the hledger reference manuals using+ man, the standard documentation viewer on unix systems. This will fit+ the text to your terminal width, and probably invoke a pager automati- cally. It requires the "man" program to be available in your PATH. - As with help, run it with no arguments to list available topics (manu-+ As with help, run it with no arguments to list available topics (manu- als). print Show transactions from the journal. -m STR --match=STR- show the transaction whose description is most similar to STR,+ show the transaction whose description is most similar to STR, and is most recent -O FMT --output-format=FMT select the output format. Supported formats: txt, csv. -o FILE --output-file=FILE- write output to FILE. A file extension matching one of the+ write output to FILE. A file extension matching one of the above formats selects that format. $ hledger print@@ -1172,12 +1280,12 @@ liabilities:debts $1 assets:bank:checking $-1 - The print command displays full transactions from the journal file,- tidily formatted and showing all amounts explicitly. The output of- print is always a valid hledger journal, but it does always not pre-+ The print command displays full transactions from the journal file,+ tidily formatted and showing all amounts explicitly. The output of+ print is always a valid hledger journal, but it does always not pre- serve all original content exactly (eg directives). - hledger's print command also shows all unit prices in effect, or (with+ hledger's print command also shows all unit prices in effect, or (with -B/--cost) shows cost amounts. The print command also supports output destination and CSV output.@@ -1189,7 +1297,7 @@ show running total from report start date (default) -H --historical- show historical running total/balance (includes postings before+ show historical running total/balance (includes postings before report start date) -A --average@@ -1200,18 +1308,18 @@ show postings' siblings instead -w N --width=N- set output width (default: terminal width or COLUMNS. -wN,M+ set output width (default: terminal width or COLUMNS. -wN,M sets description width as well) -O FMT --output-format=FMT select the output format. Supported formats: txt, csv. -o FILE --output-file=FILE- write output to FILE. A file extension matching one of the+ write output to FILE. A file extension matching one of the above formats selects that format. The register command displays postings, one per line, and their running- total. This is typically used with a query selecting a particular+ total. This is typically used with a query selecting a particular account, to see that account's activity: $ hledger register checking@@ -1220,8 +1328,8 @@ 2008/06/02 save assets:bank:checking $-1 $1 2008/12/31 pay off assets:bank:checking $-1 0 - The --historical/-H flag adds the balance from any undisplayed prior- postings to the running total. This is useful when you want to see+ The --historical/-H flag adds the balance from any undisplayed prior+ postings to the running total. This is useful when you want to see only recent activity, with a historically accurate running balance: $ hledger register checking -b 2008/6 --historical@@ -1231,23 +1339,23 @@ The --depth option limits the amount of sub-account detail displayed. - The --average/-A flag shows the running average posting amount instead+ The --average/-A flag shows the running average posting amount instead of the running total (so, the final number displayed is the average for- the whole report period). This flag implies --empty (see below). It- is affected by --historical. It works best when showing just one+ the whole report period). This flag implies --empty (see below). It+ is affected by --historical. It works best when showing just one account and one commodity. - The --related/-r flag shows the other postings in the transactions of+ The --related/-r flag shows the other postings in the transactions of the postings which would normally be shown. - With a reporting interval, register shows summary postings, one per+ With a reporting interval, register shows summary postings, one per interval, aggregating the postings to each account: $ hledger register --monthly income 2008/01 income:salary $-1 $-1 2008/06 income:gifts $-1 $-2 - Periods with no activity, and summary postings with a zero amount, are+ Periods with no activity, and summary postings with a zero amount, are not shown by default; use the --empty/-E flag to see them: $ hledger register --monthly income -E@@ -1264,7 +1372,7 @@ 2008/11 0 $-2 2008/12 0 $-2 - Often, you'll want to see just one line per interval. The --depth+ Often, you'll want to see just one line per interval. The --depth option helps with this, causing subaccounts to be aggregated: $ hledger register --monthly assets --depth 1h@@ -1272,19 +1380,19 @@ 2008/06 assets $-1 0 2008/12 assets $-1 $-1 - Note when using report intervals, if you specify start/end dates these- will be adjusted outward if necessary to contain a whole number of- intervals. This ensures that the first and last intervals are full+ Note when using report intervals, if you specify start/end dates these+ will be adjusted outward if necessary to contain a whole number of+ intervals. This ensures that the first and last intervals are full length and comparable to the others in the report. Custom register output- register uses the full terminal width by default, except on windows.- You can override this by setting the COLUMNS environment variable (not+ register uses the full terminal width by default, except on windows.+ You can override this by setting the COLUMNS environment variable (not a bash shell variable) or by using the --width/-w option. - The description and account columns normally share the space equally- (about half of (width - 40) each). You can adjust this by adding a- description width as part of --width's argument, comma-separated:+ The description and account columns normally share the space equally+ (about half of (width - 40) each). You can adjust this by adding a+ description width as part of --width's argument, comma-separated: --width W,D . Here's a diagram: <--------------------------------- width (W) ---------------------------------->@@ -1300,14 +1408,14 @@ $ hledger reg -w 100,40 # set overall width 100, description width 40 $ hledger reg -w $COLUMNS,40 # use terminal width, and set description width - The register command also supports the -o/--output-file and -O/--out-+ The register command also supports the -o/--output-file and -O/--out- put-format options for controlling output destination and CSV output. stats Show some journal statistics. -o FILE --output-file=FILE- write output to FILE. A file extension matching one of the+ write output to FILE. A file extension matching one of the above formats selects that format. $ hledger stats@@ -1322,8 +1430,8 @@ Accounts : 8 (depth 3) Commodities : 1 ($) - The stats command displays summary information for the whole journal,- or a matched part of it. With a reporting interval, it shows a report+ The stats command displays summary information for the whole journal,+ or a matched part of it. With a reporting interval, it shows a report for each report period. The stats command also supports -o/--output-file for controlling output@@ -1335,37 +1443,37 @@ $ hledger test Cases: 74 Tried: 74 Errors: 0 Failures: 0 - This command runs hledger's built-in unit tests and displays a quick+ This command runs hledger's built-in unit tests and displays a quick report. With a regular expression argument, it selects only tests with matching names. It's mainly used in development, but it's also nice to be able to check your hledger executable for smoke at any time. ADD-ON COMMANDS- Add-on commands are executables in your PATH whose name starts with- hledger- and ends with any of these file extensions: none,- .hs,.lhs,.pl,.py,.rb,.rkt,.sh,.bat,.com,.exe. Also, an add-on's name+ Add-on commands are executables in your PATH whose name starts with+ hledger- and ends with any of these file extensions: none,+ .hs,.lhs,.pl,.py,.rb,.rkt,.sh,.bat,.com,.exe. Also, an add-on's name may not be the same as any built-in command or alias. - hledger will detect these and include them in the command list and let- you invoke them with hledger ADDONCMD. However there are some limita-+ hledger will detect these and include them in the command list and let+ you invoke them with hledger ADDONCMD. However there are some limita- tions: o Options appearing before ADDONCMD will be visible only to hledger and will not be passed to the add-on. Eg: hledger -h web shows hledger's usage, hledger web -h shows hledger-web's usage. - o Options understood only by the add-on must go after a -- argument to- hide them from hledger, which would otherwise reject them. Eg:+ o Options understood only by the add-on must go after a -- argument to+ hide them from hledger, which would otherwise reject them. Eg: hledger web -- --server. - Sometimes it may be more convenient to just run the add-on directly,+ Sometimes it may be more convenient to just run the add-on directly, eg: hledger-web --server. - Add-ons which are written in haskell can take advantage of the- hledger-lib library for journal parsing, reporting, command-line+ Add-ons which are written in haskell can take advantage of the+ hledger-lib library for journal parsing, reporting, command-line options, etc. - Here are some hledger add-ons available from Hackage, the extra direc-+ Here are some hledger add-ons available from Hackage, the extra direc- tory in the hledger source, or elsewhere: api@@ -1423,11 +1531,11 @@ WF:4303001832 -$6.00 [assets:business:bank:wf:bchecking:banking] $6.00 - ledger-autosync, which includes a hledger-autosync alias, downloads+ ledger-autosync, which includes a hledger-autosync alias, downloads transactions from your bank(s) via OFX, and prints just the new ones as journal entries which you can add to your journal. It can also operate- on .OFX files which you've downloaded manually. It can be a nice- alternative to hledger's built-in CSV reader, especially if your bank+ on .OFX files which you've downloaded manually. It can be a nice+ alternative to hledger's built-in CSV reader, especially if your bank supports OFX download. diff@@ -1453,9 +1561,9 @@ 2015/02/02 (acct:two) $2 - hledger-diff compares two journal files. Given an account name, it- prints out the transactions affecting that account which are in one- journal file but not in the other. This can be useful for reconciling+ hledger-diff compares two journal files. Given an account name, it+ prints out the transactions affecting that account which are in one+ journal file but not in the other. This can be useful for reconciling existing journals with bank statements. equity@@ -1482,14 +1590,14 @@ equity:opening balances 0 This prints a journal entry which zeroes out the specified accounts (or- all accounts) with a transfer to/from "equity:closing balances" (like- Ledger's equity command). Also, it prints an similar entry with oppo-+ all accounts) with a transfer to/from "equity:closing balances" (like+ Ledger's equity command). Also, it prints an similar entry with oppo- site sign for restoring the balances from "equity:opening balances". These can be useful for ending one journal file and starting a new one,- respectively. By zeroing your asset and liability accounts at the end+ respectively. By zeroing your asset and liability accounts at the end of a file and restoring them at the start of the next one, you will see- correct asset/liability balances whether you run hledger on just one+ correct asset/liability balances whether you run hledger on just one file, or on several files concatenated with include. interest@@ -1570,11 +1678,11 @@ Liabilities:Bank EUR 3700.00 hledger-interest computes interests for a given account. Using command- line flags, the program can be configured to use various schemes for- day-counting, such as act/act, 30/360, 30E/360, and 30/360isda. Fur-- thermore, it supports a (small) number of interest schemes, i.e.+ line flags, the program can be configured to use various schemes for+ day-counting, such as act/act, 30/360, 30E/360, and 30/360isda. Fur-+ thermore, it supports a (small) number of interest schemes, i.e. annual interest with a fixed rate and the scheme mandated by the German- BGB288 (Basiszins fr Verbrauchergeschfte). See the package page for+ BGB288 (Basiszins fr Verbrauchergeschfte). See the package page for more. irr@@ -1632,11 +1740,11 @@ 2011/04/01 - 2011/05/01: 32.24% 2011/05/01 - 2011/06/01: 95.92% - hledger-irr computes the internal rate of return, also known as the- effective interest rate, of a given investment. After specifying what- account holds the investment, and what account stores the gains (or- losses, or fees, or cost), it calculates the hypothetical annual rate- of fixed rate investment that would have provided the exact same cash+ hledger-irr computes the internal rate of return, also known as the+ effective interest rate, of a given investment. After specifying what+ account holds the investment, and what account stores the gains (or+ losses, or fees, or cost), it calculates the hypothetical annual rate+ of fixed rate investment that would have provided the exact same cash flow. See the package page for more. print-unique@@ -1657,8 +1765,8 @@ entries. hledger-rewrite.hs, in hledger's extra directory (compilation- optional), adds postings to existing transactions, optionally with an- amount based on the existing transaction's first amount. See the+ optional), adds postings to existing transactions, optionally with an+ amount based on the existing transaction's first amount. See the script for more details. $ hledger rewrite -- [QUERY] --add-posting "ACCT AMTEXPR" ...@@ -1673,26 +1781,26 @@ TROUBLESHOOTING Run-time problems- Here are some issues you might encounter when you run hledger (and- remember you can also seek help from the IRC channel, mail list or bug+ Here are some issues you might encounter when you run hledger (and+ remember you can also seek help from the IRC channel, mail list or bug tracker): Successfully installed, but "No command 'hledger' found" stack and cabal install binaries into a special directory, which should- be added to your PATH environment variable. Eg on unix-like systems,+ be added to your PATH environment variable. Eg on unix-like systems, that is ~/.local/bin and ~/.cabal/bin respectively. I set a custom LEDGER_FILE, but hledger is still using the default file- LEDGER_FILE should be a real environment variable, not just a shell- variable. The command env | grep LEDGER_FILE should show it. You may+ LEDGER_FILE should be a real environment variable, not just a shell+ variable. The command env | grep LEDGER_FILE should show it. You may need to use export. Here's an explanation. - "Illegal byte sequence" or "Invalid or incomplete multibyte or wide+ "Illegal byte sequence" or "Invalid or incomplete multibyte or wide character" errors In order to handle non-ascii letters and symbols (like ), hledger needs an appropriate locale. This is usually configured system-wide; you can also configure it temporarily. The locale may need to be one that sup-- ports UTF-8, if you built hledger with GHC < 7.2 (or possibly always,+ ports UTF-8, if you built hledger with GHC < 7.2 (or possibly always, I'm not sure yet). Here's an example of setting the locale temporarily, on ubuntu@@ -1711,7 +1819,7 @@ $ echo "export LANG=en_US.UTF-8" >>~/.bash_profile $ bash --login - If we preferred to use eg fr_FR.utf8, we might have to install that+ If we preferred to use eg fr_FR.utf8, we might have to install that first: $ apt-get install language-pack-fr@@ -1732,45 +1840,45 @@ Known limitations Command line interface - Add-on command options, unless they are also understood by the main- hledger executable, must be written after --, like this:+ Add-on command options, unless they are also understood by the main+ hledger executable, must be written after --, like this: hledger web -- --server Differences from Ledger - Not all of Ledger's journal file syntax is supported. See file format+ Not all of Ledger's journal file syntax is supported. See file format differences. - hledger is slower than Ledger, and uses more memory, on large data+ hledger is slower than Ledger, and uses more memory, on large data files. Windows limitations - In a windows CMD window, non-ascii characters and colours are not sup-+ In a windows CMD window, non-ascii characters and colours are not sup- ported. In a windows Cygwin/MSYS/Mintty window, the tab key is not supported in hledger add. ENVIRONMENT- COLUMNS The screen width used by the register command. Default: the+ COLUMNS The screen width used by the register command. Default: the full terminal width. LEDGER_FILE The journal file path when not specified with -f. Default:- ~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-+ ~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour- nal). FILES- Reads data from one or more files in hledger journal, timeclock, time-- dot, or CSV format specified with -f, or $LEDGER_FILE, or- $HOME/.hledger.journal (on windows, perhaps+ Reads data from one or more files in hledger journal, timeclock, time-+ dot, or CSV format specified with -f, or $LEDGER_FILE, or+ $HOME/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.journal). BUGS- The need to precede options with -- when invoked from hledger is awk-+ The need to precede options with -- when invoked from hledger is awk- ward. - hledger can't render non-ascii characters when run from a Windows com-+ hledger can't render non-ascii characters when run from a Windows com- mand prompt (up to Windows 7 at least). When input data contains non-ascii characters, a suitable system locale@@ -1780,7 +1888,7 @@ REPORTING BUGS- Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel+ Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel or hledger mail list) @@ -1794,7 +1902,7 @@ SEE ALSO- hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),+ hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- dot(5), ledger(1) @@ -1802,4 +1910,4 @@ -hledger 1.0 October 2016 hledger(1)+hledger 1.1 December 2016 hledger(1)
doc/other/hledger-api.1 view
@@ -1,5 +1,5 @@ -.TH "hledger\-api" "1" "October 2016" "hledger\-api 1.0" "hledger User Manuals"+.TH "hledger\-api" "1" "December 2016" "hledger\-api 1.1" "hledger User Manuals" @@ -35,11 +35,14 @@ perhaps \f[C]C:/Users/USER/.hledger.journal\f[]). For more about this see hledger(1), hledger_journal(5) etc. .PP-The server listens on port 8001, or another specified with-\f[C]\-p\ PORT\f[].-Note there is no built\-in access control, so you will need to hide+The server listens on IP address 127.0.0.1, accessible only to local+requests, by default.+You can change this with \f[C]\-\-host\f[], eg+\f[C]\-\-host\ 0.0.0.0\f[] to listen on all addresses.+Note there is no other access control, so you will need to hide hledger\-api behind an authenticating proxy if you want to restrict access.+You can change the TCP port (default: 8001) with \f[C]\-p\ PORT\f[]. .PP If invoked as \f[C]hledger\-api\ \-\-swagger\f[], instead of starting a server the API docs will be printed in Swagger 2.0 format.
doc/other/hledger-api.1.info view
@@ -4,7 +4,7 @@ File: hledger-api.1.info, Node: Top, Up: (dir) -hledger-api(1) hledger-api 1.0+hledger-api(1) hledger-api 1.1 ****************************** hledger-api is a simple web API server, intended to support client-side@@ -17,10 +17,12 @@ `C:/Users/USER/.hledger.journal'). For more about this see hledger(1), hledger_journal(5) etc. - The server listens on port 8001, or another specified with `-p-PORT'. Note there is no built-in access control, so you will need to-hide hledger-api behind an authenticating proxy if you want to restrict-access.+ The server listens on IP address 127.0.0.1, accessible only to local+requests, by default. You can change this with `--host', eg `--host+0.0.0.0' to listen on all addresses. Note there is no other access+control, so you will need to hide hledger-api behind an authenticating+proxy if you want to restrict access. You can change the TCP port+(default: 8001) with `-p PORT'. If invoked as `hledger-api --swagger', instead of starting a server the API docs will be printed in Swagger 2.0 format.@@ -84,7 +86,7 @@ Tag Table: Node: Top90-Node: OPTIONS1055-Ref: #options1142+Node: OPTIONS1216+Ref: #options1303 End Tag Table
doc/other/hledger-api.1.txt view
@@ -27,10 +27,12 @@ C:/Users/USER/.hledger.journal). For more about this see hledger(1), hledger_journal(5) etc. - The server listens on port 8001, or another specified with -p PORT.- Note there is no built-in access control, so you will need to hide- hledger-api behind an authenticating proxy if you want to restrict- access.+ The server listens on IP address 127.0.0.1, accessible only to local+ requests, by default. You can change this with --host, eg+ --host 0.0.0.0 to listen on all addresses. Note there is no other+ access control, so you will need to hide hledger-api behind an authen-+ ticating proxy if you want to restrict access. You can change the TCP+ port (default: 8001) with -p PORT. If invoked as hledger-api --swagger, instead of starting a server the API docs will be printed in Swagger 2.0 format.@@ -118,4 +120,4 @@ -hledger-api 1.0 October 2016 hledger-api(1)+hledger-api 1.1 December 2016 hledger-api(1)
doc/other/hledger-ui.1 view
@@ -1,5 +1,5 @@ -.TH "hledger\-ui" "1" "October 2016" "hledger\-ui 1.0" "hledger User Manuals"+.TH "hledger\-ui" "1" "December 2016" "hledger\-ui 1.1" "hledger User Manuals" @@ -39,21 +39,31 @@ Any QUERYARGS are interpreted as a hledger search query which filters the data. .TP-.B \f[C]\-\-flat\f[]-show full account names, unindented+.B \f[C]\-\-watch\f[]+watch for data (and time) changes and reload automatically .RS .RE .TP+.B \f[C]\-\-theme=default|terminal|greenterm\f[]+use this custom display theme+.RS+.RE+.TP .B \f[C]\-\-register=ACCTREGEX\f[] start in the (first) matched account\[aq]s register screen .RS .RE .TP-.B \f[C]\-\-theme=default|terminal|greenterm\f[]-use this custom display theme+.B \f[C]\-\-change\f[]+show period balances (changes) at startup instead of historical balances .RS .RE .TP+.B \f[C]\-\-flat\f[]+show full account names, unindented+.RS+.RE+.TP .B \f[C]\-V\ \-\-value\f[] show amounts as their current market value in their default valuation commodity (accounts screen only)@@ -193,7 +203,8 @@ .RE .TP .B \f[C]\-B\ \-\-cost\f[]-show amounts in their cost price\[aq]s commodity+convert amounts to their cost at transaction time (using the transaction+price, if any) .RS .RE .TP@@ -201,8 +212,6 @@ will transform the journal before any other processing by replacing the account name of every posting having the tag TAG with content VALUE by the account name "TAG:VALUE".-.RS-.RE The TAG will only match if it is a full\-length match. The pivot will only happen if the TAG is on a posting, not if it is on the transaction.@@ -239,8 +248,11 @@ report period durations: year, quarter, month, week, day. Then, \f[C]shift\-left/right\f[] moves to the previous/next period. \f[C]t\f[] sets the report period to today.-(To set a non\-standard period, you can use \f[C]/\f[] and a-\f[C]date:\f[] query).+With the \f[C]\-\-watch\f[] option, when viewing a "current" period (the+current day, week, month, quarter, or year), the period will move+automatically to track the current date.+To set a non\-standard period, you can use \f[C]/\f[] and a+\f[C]date:\f[] query. .PP \f[C]/\f[] lets you set a general filter query limiting the data shown, using the same query terms as in hledger and hledger\-web.@@ -424,12 +436,17 @@ \f[C]\-V\f[] affects only the accounts screen. .PP When you press \f[C]g\f[], the current and all previous screens are-regenerated, which may cause a noticeable pause.+regenerated, which may cause a noticeable pause with large files. Also there is no visual indication that this is in progress. .PP-The register screen\[aq]s switching between historic balance and running-total based on query arguments may be confusing, and there is no column-heading to indicate which is being displayed.+\f[C]\-\-watch\f[] is not yet fully robust.+It works well for normal usage, but many file changes in a short time+(eg saving the file thousands of times with an editor macro) can cause+problems at least on OSX.+Symptoms include: unresponsive UI, periodic resetting of the cursor+position, momentary display of parse errors, high CPU usage eventually+subsiding, and possibly a small but persistent build\-up of CPU usage+until the program is restarted. .SH "REPORTING BUGS"
doc/other/hledger-ui.1.info view
@@ -4,7 +4,7 @@ File: hledger-ui.1.info, Node: Top, Up: (dir) -hledger-ui(1) hledger-ui 1.0+hledger-ui(1) hledger-ui 1.1 **************************** hledger-ui is hledger's curses-style interface, providing an efficient@@ -37,15 +37,22 @@ Any QUERYARGS are interpreted as a hledger search query which filters the data. -`--flat'- show full account names, unindented+`--watch'+ watch for data (and time) changes and reload automatically +`--theme=default|terminal|greenterm'+ use this custom display theme+ `--register=ACCTREGEX' start in the (first) matched account's register screen -`--theme=default|terminal|greenterm'- use this custom display theme+`--change'+ show period balances (changes) at startup instead of historical+ balances +`--flat'+ show full account names, unindented+ `-V --value' show amounts as their current market value in their default valuation commodity (accounts screen only)@@ -132,16 +139,17 @@ show items with zero amount, normally hidden `-B --cost'- show amounts in their cost price's commodity+ convert amounts to their cost at transaction time (using the+ transaction price, if any) `--pivot TAG' will transform the journal before any other processing by replacing the account name of every posting having the tag TAG- with content VALUE by the account name "TAG:VALUE". The TAG will+ with content VALUE by the account name "TAG:VALUE". The TAG will only match if it is a full-length match. The pivot will only- happen if the TAG is on a posting, not if it is on the transaction.- If the tag value is a multi:level:account:name the new account- name will be "TAG:multi:level:account:name".+ happen if the TAG is on a posting, not if it is on the+ transaction. If the tag value is a multi:level:account:name the+ new account name will be "TAG:multi:level:account:name". `--anon' show anonymized accounts and payees@@ -170,8 +178,10 @@ `shift-down/up' steps downward and upward through these standard report period durations: year, quarter, month, week, day. Then, `shift-left/right' moves to the previous/next period. `t' sets the-report period to today. (To set a non-standard period, you can use `/'-and a `date:' query).+report period to today. With the `--watch' option, when viewing a+"current" period (the current day, week, month, quarter, or year), the+period will move automatically to track the current date. To set a+non-standard period, you can use `/' and a `date:' query. `/' lets you set a general filter query limiting the data shown, using the same query terms as in hledger and hledger-web. While editing@@ -351,17 +361,17 @@ Node: Top88 Node: OPTIONS823 Ref: #options922-Node: KEYS3786-Ref: #keys3883-Node: SCREENS6284-Ref: #screens6371-Node: Accounts screen6461-Ref: #accounts-screen6591-Node: Register screen8629-Ref: #register-screen8786-Node: Transaction screen10674-Ref: #transaction-screen10834-Node: Error screen11701-Ref: #error-screen11825+Node: KEYS4003+Ref: #keys4100+Node: SCREENS6670+Ref: #screens6757+Node: Accounts screen6847+Ref: #accounts-screen6977+Node: Register screen9015+Ref: #register-screen9172+Node: Transaction screen11060+Ref: #transaction-screen11220+Node: Error screen12087+Ref: #error-screen12211 End Tag Table
doc/other/hledger-ui.1.txt view
@@ -35,14 +35,21 @@ Any QUERYARGS are interpreted as a hledger search query which filters the data. - --flat show full account names, unindented+ --watch+ watch for data (and time) changes and reload automatically + --theme=default|terminal|greenterm+ use this custom display theme+ --register=ACCTREGEX start in the (first) matched account's register screen - --theme=default|terminal|greenterm- use this custom display theme+ --change+ show period balances (changes) at startup instead of historical+ balances + --flat show full account names, unindented+ -V --value show amounts as their current market value in their default val- uation commodity (accounts screen only)@@ -51,7 +58,7 @@ -h show general usage (or after COMMAND, the command's usage) - --help show the current program's manual as plain text (or after an+ --help show the current program's manual as plain text (or after an add-on COMMAND, the add-on's manual) --man show the current program's manual with man@@ -68,7 +75,7 @@ use a different input file. For stdin, use - --rules-file=RULESFILE- Conversion rules file to use when reading CSV (default:+ Conversion rules file to use when reading CSV (default: FILE.rules) --alias=OLD=NEW@@ -101,7 +108,7 @@ multiperiod/multicolumn report by year -p --period=PERIODEXP- set start date, end date, and/or reporting interval all at once+ set start date, end date, and/or reporting interval all at once (overrides the flags above) --date2@@ -126,63 +133,66 @@ show items with zero amount, normally hidden -B --cost- show amounts in their cost price's commodity+ convert amounts to their cost at transaction time (using the+ transaction price, if any) --pivot TAG will transform the journal before any other processing by replacing the account name of every posting having the tag TAG- with content VALUE by the account name "TAG:VALUE".- The TAG will only match if it is a full-length match. The pivot will- only happen if the TAG is on a posting, not if it is on the transac-- tion. If the tag value is a multi:level:account:name the new account- name will be "TAG:multi:level:account:name".+ with content VALUE by the account name "TAG:VALUE". The TAG+ will only match if it is a full-length match. The pivot will+ only happen if the TAG is on a posting, not if it is on the+ transaction. If the tag value is a multi:level:account:name the+ new account name will be "TAG:multi:level:account:name". --anon show anonymized accounts and payees KEYS- ? shows a help dialog listing all keys. (Some of these also appear in+ ? shows a help dialog listing all keys. (Some of these also appear in the quick help at the bottom of each screen.) Press ? again (or ESCAPE, or LEFT) to close it. The following keys work on most screens: The cursor keys navigate: right (or enter) goes deeper, left returns to- the previous screen, up/down/page up/page down/home/end move up and+ the previous screen, up/down/page up/page down/home/end move up and down through lists. Vi-style h/j/k/l movement keys are also supported.- A tip: movement speed is limited by your keyboard repeat rate, to move- faster you may want to adjust it. (If you're on a mac, the Karabiner+ A tip: movement speed is limited by your keyboard repeat rate, to move+ faster you may want to adjust it. (If you're on a mac, the Karabiner app is one way to do that.) - With shift pressed, the cursor keys adjust the report period, limiting- the transactions to be shown (by default, all are shown).- shift-down/up steps downward and upward through these standard report+ With shift pressed, the cursor keys adjust the report period, limiting+ the transactions to be shown (by default, all are shown).+ shift-down/up steps downward and upward through these standard report period durations: year, quarter, month, week, day. Then,- shift-left/right moves to the previous/next period. t sets the report- period to today. (To set a non-standard period, you can use / and a- date: query).+ shift-left/right moves to the previous/next period. t sets the report+ period to today. With the --watch option, when viewing a "current"+ period (the current day, week, month, quarter, or year), the period+ will move automatically to track the current date. To set a non-stan-+ dard period, you can use / and a date: query. - / lets you set a general filter query limiting the data shown, using- the same query terms as in hledger and hledger-web. While editing the- query, you can use CTRL-a/e/d/k, BS, cursor keys; press ENTER to set+ / lets you set a general filter query limiting the data shown, using+ the same query terms as in hledger and hledger-web. While editing the+ query, you can use CTRL-a/e/d/k, BS, cursor keys; press ENTER to set it, or ESCAPEto cancel. There are also keys for quickly adjusting some- common filters like account depth and cleared/uncleared (see below).+ common filters like account depth and cleared/uncleared (see below). BACKSPACE or DELETE removes all filters, showing all transactions. - ESCAPE removes all filters and jumps back to the top screen. Or, it+ ESCAPE removes all filters and jumps back to the top screen. Or, it cancels a minibuffer edit or help dialog in progress. - g reloads from the data file(s) and updates the current screen and any- previous screens. (With large files, this could cause a noticeable+ g reloads from the data file(s) and updates the current screen and any+ previous screens. (With large files, this could cause a noticeable pause.) - I toggles balance assertion checking. Disabling balance assertions+ I toggles balance assertion checking. Disabling balance assertions temporarily can be useful for troubleshooting. - a runs command-line hledger's add command, and reloads the updated+ a runs command-line hledger's add command, and reloads the updated file. This allows some basic data entry. - E runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (emac-+ E runs $HLEDGER_UI_EDITOR, or $EDITOR, or a default (emac- sclient -a "" -nw) on the journal file. With some editors (emacs, vi),- the cursor will be positioned at the current transaction when invoked- from the register and transaction screens, and at the error location+ the cursor will be positioned at the current transaction when invoked+ from the register and transaction screens, and at the error location (if possible) when invoked from the error screen. q quits the application.@@ -191,42 +201,42 @@ SCREENS Accounts screen- This is normally the first screen displayed. It lists accounts and- their balances, like hledger's balance command. By default, it shows- all accounts and their latest ending balances (including the balances- of subaccounts). if you specify a query on the command line, it shows+ This is normally the first screen displayed. It lists accounts and+ their balances, like hledger's balance command. By default, it shows+ all accounts and their latest ending balances (including the balances+ of subaccounts). if you specify a query on the command line, it shows just the matched accounts and the balances from matched transactions. - Account names are normally indented to show the hierarchy (tree mode).+ Account names are normally indented to show the hierarchy (tree mode). To see less detail, set a depth limit by pressing a number key, 1 to 9. 0 shows even less detail, collapsing all accounts to a single total. -- and + (or =) decrease and increase the depth limit. To remove the- depth limit, set it higher than the maximum account depth, or press+ and + (or =) decrease and increase the depth limit. To remove the+ depth limit, set it higher than the maximum account depth, or press ESCAPE. - F toggles flat mode, in which accounts are shown as a flat list, with- their full names. In this mode, account balances exclude subaccounts,- except for accounts at the depth limit (as with hledger's balance com-+ F toggles flat mode, in which accounts are shown as a flat list, with+ their full names. In this mode, account balances exclude subaccounts,+ except for accounts at the depth limit (as with hledger's balance com- mand). H toggles between showing historical balances or period balances. His-- torical balances (the default) are ending balances at the end of the- report period, taking into account all transactions before that date- (filtered by the filter query if any), including transactions before- the start of the report period. In other words, historical balances- are what you would see on a bank statement for that account (unless- disturbed by a filter query). Period balances ignore transactions+ torical balances (the default) are ending balances at the end of the+ report period, taking into account all transactions before that date+ (filtered by the filter query if any), including transactions before+ the start of the report period. In other words, historical balances+ are what you would see on a bank statement for that account (unless+ disturbed by a filter query). Period balances ignore transactions before the report start date, so they show the change in balance during the report period. They are more useful eg when viewing a time log. - C toggles cleared mode, in which uncleared transactions and postings- are not shown. U toggles uncleared mode, in which only uncleared+ C toggles cleared mode, in which uncleared transactions and postings+ are not shown. U toggles uncleared mode, in which only uncleared transactions/postings are shown. R toggles real mode, in which virtual postings are ignored. - Z toggles nonzero mode, in which only accounts with nonzero balances- are shown (hledger-ui shows zero items by default, unlike command-line+ Z toggles nonzero mode, in which only accounts with nonzero balances+ are shown (hledger-ui shows zero items by default, unlike command-line hledger). Press right or enter to view an account's transactions register.@@ -235,62 +245,62 @@ This screen shows the transactions affecting a particular account, like a check register. Each line represents one transaction and shows: - o the other account(s) involved, in abbreviated form. (If there are- both real and virtual postings, it shows only the accounts affected+ o the other account(s) involved, in abbreviated form. (If there are+ both real and virtual postings, it shows only the accounts affected by real postings.) - o the overall change to the current account's balance; positive for an+ o the overall change to the current account's balance; positive for an inflow to this account, negative for an outflow. o the running historical total or period total for the current account,- after the transaction. This can be toggled with H. Similar to the- accounts screen, the historical total is affected by transactions- (filtered by the filter query) before the report start date, while+ after the transaction. This can be toggled with H. Similar to the+ accounts screen, the historical total is affected by transactions+ (filtered by the filter query) before the report start date, while the period total is not. If the historical total is not disturbed by- a filter query, it will be the running historical balance you would+ a filter query, it will be the running historical balance you would see on a bank register for the current account. - If the accounts screen was in tree mode, the register screen will+ If the accounts screen was in tree mode, the register screen will include transactions from both the current account and its subaccounts.- If the accounts screen was in flat mode, and a non-depth-clipped- account was selected, the register screen will exclude transactions+ If the accounts screen was in flat mode, and a non-depth-clipped+ account was selected, the register screen will exclude transactions from subaccounts. In other words, the register always shows the trans-- actions responsible for the period balance shown on the accounts+ actions responsible for the period balance shown on the accounts screen. As on the accounts screen, this can be toggled with F. - C toggles cleared mode, in which uncleared transactions and postings- are not shown. U toggles uncleared mode, in which only uncleared+ C toggles cleared mode, in which uncleared transactions and postings+ are not shown. U toggles uncleared mode, in which only uncleared transactions/postings are shown. R toggles real mode, in which virtual postings are ignored. - Z toggles nonzero mode, in which only transactions posting a nonzero- change are shown (hledger-ui shows zero items by default, unlike com-+ Z toggles nonzero mode, in which only transactions posting a nonzero+ change are shown (hledger-ui shows zero items by default, unlike com- mand-line hledger). Press right (or enter) to view the selected transaction in detail. Transaction screen- This screen shows a single transaction, as a general journal entry,- similar to hledger's print command and journal format (hledger_jour-+ This screen shows a single transaction, as a general journal entry,+ similar to hledger's print command and journal format (hledger_jour- nal(5)). - The transaction's date(s) and any cleared flag, transaction code,- description, comments, along with all of its account postings are- shown. Simple transactions have two postings, but there can be more+ The transaction's date(s) and any cleared flag, transaction code,+ description, comments, along with all of its account postings are+ shown. Simple transactions have two postings, but there can be more (or in certain cases, fewer). - up and down will step through all transactions listed in the previous- account register screen. In the title bar, the numbers in parentheses- show your position within that account register. They will vary+ up and down will step through all transactions listed in the previous+ account register screen. In the title bar, the numbers in parentheses+ show your position within that account register. They will vary depending on which account register you came from (remember most trans- actions appear in multiple account registers). The #N number preceding them is the transaction's position within the complete unfiltered jour- nal, which is a more stable id (at least until the next reload). Error screen- This screen will appear if there is a problem, such as a parse error,- when you press g to reload. Once you have fixed the problem, press g+ This screen will appear if there is a problem, such as a parse error,+ when you press g to reload. Once you have fixed the problem, press g again to reload and resume normal operation. (Or, you can press escape to cancel the reload attempt.) @@ -298,17 +308,17 @@ COLUMNS The screen width to use. Default: the full terminal width. LEDGER_FILE The journal file path when not specified with -f. Default:- ~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-+ ~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour- nal). FILES- Reads data from one or more files in hledger journal, timeclock, time-- dot, or CSV format specified with -f, or $LEDGER_FILE, or- $HOME/.hledger.journal (on windows, perhaps+ Reads data from one or more files in hledger journal, timeclock, time-+ dot, or CSV format specified with -f, or $LEDGER_FILE, or+ $HOME/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.journal). BUGS- The need to precede options with -- when invoked from hledger is awk-+ The need to precede options with -- when invoked from hledger is awk- ward. -f- doesn't work (hledger-ui can't read from stdin).@@ -316,17 +326,21 @@ -V affects only the accounts screen. When you press g, the current and all previous screens are regenerated,- which may cause a noticeable pause. Also there is no visual indication- that this is in progress.+ which may cause a noticeable pause with large files. Also there is no+ visual indication that this is in progress. - The register screen's switching between historic balance and running- total based on query arguments may be confusing, and there is no column- heading to indicate which is being displayed.+ --watch is not yet fully robust. It works well for normal usage, but+ many file changes in a short time (eg saving the file thousands of+ times with an editor macro) can cause problems at least on OSX. Symp-+ toms include: unresponsive UI, periodic resetting of the cursor posi-+ tion, momentary display of parse errors, high CPU usage eventually sub-+ siding, and possibly a small but persistent build-up of CPU usage until+ the program is restarted. REPORTING BUGS- Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel+ Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel or hledger mail list) @@ -340,7 +354,7 @@ SEE ALSO- hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),+ hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- dot(5), ledger(1) @@ -348,4 +362,4 @@ -hledger-ui 1.0 October 2016 hledger-ui(1)+hledger-ui 1.1 December 2016 hledger-ui(1)
doc/other/hledger-web.1 view
@@ -1,5 +1,5 @@ -.TH "hledger\-web" "1" "October 2016" "hledger\-web 1.0" "hledger User Manuals"+.TH "hledger\-web" "1" "December 2016" "hledger\-web 1.1" "hledger User Manuals" @@ -59,22 +59,34 @@ \f[] .fi .PP-With \f[C]\-\-server\f[], it starts the web app in non\-transient mode+With \f[C]\-\-serve\f[], it starts the web app in non\-transient mode and logs requests to the console.-Typically when running hledger web as part of a website you\[aq]ll want-to use \f[C]\-\-base\-url\f[] to set the protocol/hostname/port/path to-be used in hyperlinks.-The \f[C]\-\-file\-url\f[] option allows static files to be served from-a different url, eg for better caching or cookie\-less serving. .PP-You can use \f[C]\-\-port\f[] to listen on a different TCP port, eg if-you are running multiple hledger\-web instances.-This need not be the same as the PORT in the base url.+By default the server listens on IP address 127.0.0.1, accessible only+to local requests.+You can use \f[C]\-\-host\f[] to change this, eg+\f[C]\-\-host\ 0.0.0.0\f[] to listen on all configured addresses. .PP-Note there is no built\-in access control, so you will need to hide-hledger\-web behind an authenticating proxy (such as apache or nginx) if-you want to restrict who can see and add entries to your journal.+Similarly, use \f[C]\-\-port\f[] to set a TCP port other than 5000, eg+if you are running multiple hledger\-web instances. .PP+You can use \f[C]\-\-base\-url\f[] to change the protocol, hostname,+port and path that appear in hyperlinks, useful eg for integrating+hledger\-web within a larger website.+The default is \f[C]http://HOST:PORT/\f[] using the server\[aq]s+configured host address and TCP port (or \f[C]http://HOST\f[] if PORT is+80).+.PP+With \f[C]\-\-file\-url\f[] you can set a different base url for static+files, eg for better caching or cookie\-less serving on high performance+websites.+.PP+Note there is no built\-in access control (aside from listening on+127.0.0.1 by default).+So you will need to hide hledger\-web behind an authenticating proxy+(such as apache or nginx) if you want to restrict who can see and add+entries to your journal.+.PP Command\-line options and arguments may be used to set an initial filter on the data. This is not shown in the web UI, but it will be applied in addition to@@ -249,7 +261,8 @@ .RE .TP .B \f[C]\-B\ \-\-cost\f[]-show amounts in their cost price\[aq]s commodity+convert amounts to their cost at transaction time (using the transaction+price, if any) .RS .RE .TP@@ -257,8 +270,6 @@ will transform the journal before any other processing by replacing the account name of every posting having the tag TAG with content VALUE by the account name "TAG:VALUE".-.RS-.RE The TAG will only match if it is a full\-length match. The pivot will only happen if the TAG is on a posting, not if it is on the transaction.
doc/other/hledger-web.1.info view
@@ -4,7 +4,7 @@ File: hledger-web.1.info, Node: Top, Up: (dir) -hledger-web(1) hledger-web 1.0+hledger-web(1) hledger-web 1.1 ****************************** hledger-web is hledger's web interface. It starts a simple web@@ -38,21 +38,31 @@ Starting web browser if possible Web app will auto-exit after a few minutes with no browsers (or press ctrl-c) - With `--server', it starts the web app in non-transient mode and-logs requests to the console. Typically when running hledger web as part-of a website you'll want to use `--base-url' to set the-protocol/hostname/port/path to be used in hyperlinks. The `--file-url'-option allows static files to be served from a different url, eg for-better caching or cookie-less serving.+ With `--serve', it starts the web app in non-transient mode and logs+requests to the console. - You can use `--port' to listen on a different TCP port, eg if you-are running multiple hledger-web instances. This need not be the same as-the PORT in the base url.+ By default the server listens on IP address 127.0.0.1, accessible+only to local requests. You can use `--host' to change this, eg `--host+0.0.0.0' to listen on all configured addresses. - Note there is no built-in access control, so you will need to hide-hledger-web behind an authenticating proxy (such as apache or nginx) if-you want to restrict who can see and add entries to your journal.+ Similarly, use `--port' to set a TCP port other than 5000, eg if you+are running multiple hledger-web instances. + You can use `--base-url' to change the protocol, hostname, port and+path that appear in hyperlinks, useful eg for integrating hledger-web+within a larger website. The default is `http://HOST:PORT/' using the+server's configured host address and TCP port (or `http://HOST' if PORT+is 80).++ With `--file-url' you can set a different base url for static files,+eg for better caching or cookie-less serving on high performance+websites.++ Note there is no built-in access control (aside from listening on+127.0.0.1 by default). So you will need to hide hledger-web behind an+authenticating proxy (such as apache or nginx) if you want to restrict+who can see and add entries to your journal.+ Command-line options and arguments may be used to set an initial filter on the data. This is not shown in the web UI, but it will be applied in addition to any search query entered there.@@ -175,16 +185,17 @@ show items with zero amount, normally hidden `-B --cost'- show amounts in their cost price's commodity+ convert amounts to their cost at transaction time (using the+ transaction price, if any) `--pivot TAG' will transform the journal before any other processing by replacing the account name of every posting having the tag TAG- with content VALUE by the account name "TAG:VALUE". The TAG will+ with content VALUE by the account name "TAG:VALUE". The TAG will only match if it is a full-length match. The pivot will only- happen if the TAG is on a posting, not if it is on the transaction.- If the tag value is a multi:level:account:name the new account- name will be "TAG:multi:level:account:name".+ happen if the TAG is on a posting, not if it is on the+ transaction. If the tag value is a multi:level:account:name the+ new account name will be "TAG:multi:level:account:name". `--anon' show anonymized accounts and payees@@ -193,7 +204,7 @@ Tag Table: Node: Top90-Node: OPTIONS2997-Ref: #options3084+Node: OPTIONS3343+Ref: #options3430 End Tag Table
doc/other/hledger-web.1.txt view
@@ -48,32 +48,40 @@ Starting web browser if possible Web app will auto-exit after a few minutes with no browsers (or press ctrl-c) - With --server, it starts the web app in non-transient mode and logs- requests to the console. Typically when running hledger web as part of- a website you'll want to use --base-url to set the protocol/host-- name/port/path to be used in hyperlinks. The --file-url option allows- static files to be served from a different url, eg for better caching- or cookie-less serving.+ With --serve, it starts the web app in non-transient mode and logs+ requests to the console. - You can use --port to listen on a different TCP port, eg if you are- running multiple hledger-web instances. This need not be the same as- the PORT in the base url.+ By default the server listens on IP address 127.0.0.1, accessible only+ to local requests. You can use --host to change this, eg+ --host 0.0.0.0 to listen on all configured addresses. - Note there is no built-in access control, so you will need to hide- hledger-web behind an authenticating proxy (such as apache or nginx) if- you want to restrict who can see and add entries to your journal.+ Similarly, use --port to set a TCP port other than 5000, eg if you are+ running multiple hledger-web instances. + You can use --base-url to change the protocol, hostname, port and path+ that appear in hyperlinks, useful eg for integrating hledger-web within+ a larger website. The default is http://HOST:PORT/ using the server's+ configured host address and TCP port (or http://HOST if PORT is 80).++ With --file-url you can set a different base url for static files, eg+ for better caching or cookie-less serving on high performance websites.++ Note there is no built-in access control (aside from listening on+ 127.0.0.1 by default). So you will need to hide hledger-web behind an+ authenticating proxy (such as apache or nginx) if you want to restrict+ who can see and add entries to your journal.+ Command-line options and arguments may be used to set an initial filter- on the data. This is not shown in the web UI, but it will be applied+ on the data. This is not shown in the web UI, but it will be applied in addition to any search query entered there. With journal and timeclock files (but not CSV files, currently) the web- app detects changes made by other means and will show the new data on- the next request. If a change makes the file unparseable, hledger-web+ app detects changes made by other means and will show the new data on+ the next request. If a change makes the file unparseable, hledger-web will show an error until the file has been fixed. OPTIONS- Note: if invoking hledger-web as a hledger subcommand, write -- before+ Note: if invoking hledger-web as a hledger subcommand, write -- before options as shown above. --server@@ -84,21 +92,21 @@ set the TCP port to listen on (default: 5000) --base-url=URL- set the base url (default: http://localhost:PORT). You would+ set the base url (default: http://localhost:PORT). You would change this when sharing over the network, or integrating within a larger website. --file-url=URL set the static files url (default: BASEURL/static). hledger-web- normally serves static files itself, but if you wanted to serve- them from another server for efficiency, you would set the url+ normally serves static files itself, but if you wanted to serve+ them from another server for efficiency, you would set the url with this. hledger general options: -h show general usage (or after COMMAND, the command's usage) - --help show the current program's manual as plain text (or after an+ --help show the current program's manual as plain text (or after an add-on COMMAND, the add-on's manual) --man show the current program's manual with man@@ -115,7 +123,7 @@ use a different input file. For stdin, use - --rules-file=RULESFILE- Conversion rules file to use when reading CSV (default:+ Conversion rules file to use when reading CSV (default: FILE.rules) --alias=OLD=NEW@@ -148,7 +156,7 @@ multiperiod/multicolumn report by year -p --period=PERIODEXP- set start date, end date, and/or reporting interval all at once+ set start date, end date, and/or reporting interval all at once (overrides the flags above) --date2@@ -173,32 +181,33 @@ show items with zero amount, normally hidden -B --cost- show amounts in their cost price's commodity+ convert amounts to their cost at transaction time (using the+ transaction price, if any) --pivot TAG will transform the journal before any other processing by replacing the account name of every posting having the tag TAG- with content VALUE by the account name "TAG:VALUE".- The TAG will only match if it is a full-length match. The pivot will- only happen if the TAG is on a posting, not if it is on the transac-- tion. If the tag value is a multi:level:account:name the new account- name will be "TAG:multi:level:account:name".+ with content VALUE by the account name "TAG:VALUE". The TAG+ will only match if it is a full-length match. The pivot will+ only happen if the TAG is on a posting, not if it is on the+ transaction. If the tag value is a multi:level:account:name the+ new account name will be "TAG:multi:level:account:name". --anon show anonymized accounts and payees ENVIRONMENT LEDGER_FILE The journal file path when not specified with -f. Default:- ~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour-+ ~/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.jour- nal). FILES- Reads data from one or more files in hledger journal, timeclock, time-- dot, or CSV format specified with -f, or $LEDGER_FILE, or- $HOME/.hledger.journal (on windows, perhaps+ Reads data from one or more files in hledger journal, timeclock, time-+ dot, or CSV format specified with -f, or $LEDGER_FILE, or+ $HOME/.hledger.journal (on windows, perhaps C:/Users/USER/.hledger.journal). BUGS- The need to precede options with -- when invoked from hledger is awk-+ The need to precede options with -- when invoked from hledger is awk- ward. -f- doesn't work (hledger-web can't read from stdin).@@ -212,7 +221,7 @@ REPORTING BUGS- Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel+ Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel or hledger mail list) @@ -226,7 +235,7 @@ SEE ALSO- hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),+ hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- dot(5), ledger(1) @@ -234,4 +243,4 @@ -hledger-web 1.0 October 2016 hledger-web(1)+hledger-web 1.1 December 2016 hledger-web(1)
doc/other/hledger_csv.5 view
@@ -1,5 +1,5 @@ -.TH "hledger_csv" "5" "October 2016" "hledger 1.0" "hledger User Manuals"+.TH "hledger_csv" "5" "December 2016" "hledger 1.1" "hledger User Manuals"
doc/other/hledger_csv.5.info view
@@ -4,7 +4,7 @@ File: hledger_csv.5.info, Node: Top, Up: (dir) -hledger_csv(5) hledger 1.0+hledger_csv(5) hledger 1.1 ************************** hledger can read CSV files, converting each CSV record into a journal
doc/other/hledger_csv.5.txt view
@@ -166,4 +166,4 @@ -hledger 1.0 October 2016 hledger_csv(5)+hledger 1.1 December 2016 hledger_csv(5)
doc/other/hledger_journal.5 view
@@ -1,6 +1,6 @@ .\"t -.TH "hledger_journal" "5" "October 2016" "hledger 1.0" "hledger User Manuals"+.TH "hledger_journal" "5" "December 2016" "hledger 1.1" "hledger User Manuals" @@ -250,8 +250,10 @@ amounts are a number (the "quantity") and optionally a currency symbol/commodity name (the "commodity"). .IP \[bu] 2-the commodity is a symbol, word, or double\-quoted phrase, on the left-or right, with or without a separating space+the commodity is a symbol, word, or phrase, on the left or right, with+or without a separating space.+If the commodity contains numbers, spaces or non\-word punctuation it+must be enclosed in double quotes. .IP \[bu] 2 negative amounts with a commodity on the left can have the minus sign before or after it@@ -325,7 +327,7 @@ which is more correct and provides better error checking. .SS Balance Assertions .PP-hledger supports ledger\-style balance assertions in journal files.+hledger supports Ledger\-style balance assertions in journal files. These look like \f[C]=EXPECTEDBALANCE\f[] following a posting\[aq]s amount. Eg in this example we assert the expected dollar balance in accounts a@@ -421,21 +423,58 @@ virtual. They are not affected by the \f[C]\-\-real/\-R\f[] flag or \f[C]real:\f[] query.+.SS Balance Assignments+.PP+Ledger\-style balance assignments are also supported.+These are like balance assertions, but with no posting amount on the+left side of the equals sign; instead it is calculated automatically so+as to satisfy the assertion.+This can be a convenience during data entry, eg when setting opening+balances:+.IP+.nf+\f[C]+;\ starting\ a\ new\ journal,\ set\ asset\ account\ balances\ +2016/1/1\ opening\ balances+\ \ assets:checking\ \ \ \ \ \ \ \ \ \ \ \ =\ $409.32+\ \ assets:savings\ \ \ \ \ \ \ \ \ \ \ \ \ =\ $735.24+\ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ $42+\ \ equity:opening\ balances+\f[]+.fi+.PP+or when adjusting a balance to reality:+.IP+.nf+\f[C]+;\ no\ cash\ left;\ update\ balance,\ record\ any\ untracked\ spending\ as\ a\ generic\ expense+2016/1/15+\ \ assets:cash\ \ \ \ =\ $0+\ \ expenses:misc+\f[]+.fi+.PP+The calculated amount depends on the account\[aq]s balance in the+commodity at that point (which depends on the previously\-dated postings+of the commodity to that account since the last balance assertion or+assignment).+Note that using balance assignments makes your journal a little less+explicit; to know the exact amount posted, you have to run hledger or do+the calculations yourself, instead of just reading it. .SS Prices .SS Transaction prices .PP-When recording a transaction, you can also record an amount\[aq]s price-in another commodity.-This documents the exchange rate, cost (of a purchase), or selling price-(of a sale) that was in effect within this particular transaction (or-more precisely, within the particular posting).-These transaction prices are fixed, and do not change.+Within a transaction posting, you can record an amount\[aq]s price in+another commodity.+This can be used to document the cost (for a purchase), or selling price+(for a sale), or the exchange rate that was used, for this transaction.+These transaction prices are fixed, and do not change over time. .PP-Such priced amounts can be displayed in their transaction price\[aq]s-commodity, by using the \f[C]\-\-cost/\-B\f[] flag (B for "cost Basis"),-supported by most hledger commands.+Amounts with transaction prices can be displayed in the transaction+price\[aq]s commodity, by using the \f[C]\-\-cost/\-B\f[] flag supported+by most hledger commands (mnemonic: "cost Basis"). .PP-There are three ways to specify a transaction price:+There are several ways to record a transaction price: .IP "1." 3 Write the unit price (aka exchange rate), as \f[C]\@\ UNITPRICE\f[] after the amount:@@ -492,27 +531,31 @@ .SS Market prices .PP Market prices are not tied to a particular transaction; they represent-historical exchange rates between two commodities, usually from some-public market which publishes such rates.-.PP-When market prices are known, the \f[C]\-V/\-\-value\f[] option will use-them to convert reported amounts to their market value as of the report-end date.-This option is currently available only with the balance command.+historical exchange rates between two commodities.+(Ledger calls them historical prices.) For example, the prices published+by a stock exchange or the foreign exchange market.+Some commands (balance, currently) can use this information to show the+market value of things at a given date. .PP-You record market prices (Ledger calls them historical prices) with a P-directive, in the journal or perhaps in a separate included file.-Market price directives have the format:+To record market prices, use P directives in the main journal or in an+included file.+Their format is: .IP .nf \f[C]-P\ DATE\ COMMODITYSYMBOL\ UNITPRICE+P\ DATE\ COMMODITYBEINGPRICED\ UNITPRICE \f[] .fi .PP-For example, the following directives say that the euro\[aq]s exchange-rate was 1.35 US dollars during 2009, and $1.40 from 2010 onward (and-unknown before 2009).+DATE is a simple date as usual.+COMMODITYBEINGPRICED is the symbol of the commodity being priced (just+the symbol, no quantity).+UNITPRICE is an ordinary amount (symbol and quantity) in a second+commodity, specifying the unit price or conversion rate for the first+commodity in terms of the second, on the given date.+.PP+For example, the following directives say that one euro was worth 1.35+US dollars during 2009, and $1.40 from 2010 onward: .IP .nf \f[C]@@ -520,8 +563,6 @@ P\ 2010/1/1\ €\ $1.40 \f[] .fi-.PP-Example use for market prices: tracking the value of stocks. .SS Comments .PP Lines in the journal beginning with a semicolon (\f[C];\f[]) or hash
doc/other/hledger_journal.5.info view
@@ -4,7 +4,7 @@ File: hledger_journal.5.info, Node: Top, Up: (dir) -hledger_journal(5) hledger 1.0+hledger_journal(5) hledger 1.1 ****************************** hledger's usual data source is a plain text file containing journal@@ -70,6 +70,7 @@ * Amounts:: * Virtual Postings:: * Balance Assertions::+* Balance Assignments:: * Prices:: * Comments:: * Tags::@@ -257,8 +258,10 @@ * amounts are a number (the "quantity") and optionally a currency symbol/commodity name (the "commodity"). - * the commodity is a symbol, word, or double-quoted phrase, on the- left or right, with or without a separating space+ * the commodity is a symbol, word, or phrase, on the left or right,+ with or without a separating space. If the commodity contains+ numbers, spaces or non-word punctuation it must be enclosed in+ double quotes. * negative amounts with a commodity on the left can have the minus sign before or after it@@ -329,12 +332,12 @@ is more correct and provides better error checking. -File: hledger_journal.5.info, Node: Balance Assertions, Next: Prices, Prev: Virtual Postings, Up: FILE FORMAT+File: hledger_journal.5.info, Node: Balance Assertions, Next: Balance Assignments, Prev: Virtual Postings, Up: FILE FORMAT 1.6 Balance Assertions ====================== -hledger supports ledger-style balance assertions in journal files. These+hledger supports Ledger-style balance assertions in journal files. These look like `=EXPECTEDBALANCE' following a posting's amount. Eg in this example we assert the expected dollar balance in accounts a and b after each posting:@@ -440,9 +443,44 @@ virtual. They are not affected by the `--real/-R' flag or `real:' query. -File: hledger_journal.5.info, Node: Prices, Next: Comments, Prev: Balance Assertions, Up: FILE FORMAT+File: hledger_journal.5.info, Node: Balance Assignments, Next: Prices, Prev: Balance Assertions, Up: FILE FORMAT -1.7 Prices+1.7 Balance Assignments+=======================++Ledger-style balance assignments are also supported. These are like+balance assertions, but with no posting amount on the left side of the+equals sign; instead it is calculated automatically so as to satisfy the+assertion. This can be a convenience during data entry, eg when setting+opening balances:+++; starting a new journal, set asset account balances+2016/1/1 opening balances+ assets:checking = $409.32+ assets:savings = $735.24+ assets:cash = $42+ equity:opening balances++ or when adjusting a balance to reality:+++; no cash left; update balance, record any untracked spending as a generic expense+2016/1/15+ assets:cash = $0+ expenses:misc++ The calculated amount depends on the account's balance in the+commodity at that point (which depends on the previously-dated postings+of the commodity to that account since the last balance assertion or+assignment). Note that using balance assignments makes your journal a+little less explicit; to know the exact amount posted, you have to run+hledger or do the calculations yourself, instead of just reading it.+++File: hledger_journal.5.info, Node: Prices, Next: Comments, Prev: Balance Assignments, Up: FILE FORMAT++1.8 Prices ========== * Menu:@@ -453,20 +491,20 @@ File: hledger_journal.5.info, Node: Transaction prices, Next: Market prices, Up: Prices -1.7.1 Transaction prices+1.8.1 Transaction prices ------------------------ -When recording a transaction, you can also record an amount's price in-another commodity. This documents the exchange rate, cost (of a-purchase), or selling price (of a sale) that was in effect within this-particular transaction (or more precisely, within the particular-posting). These transaction prices are fixed, and do not change.+Within a transaction posting, you can record an amount's price in+another commodity. This can be used to document the cost (for a+purchase), or selling price (for a sale), or the exchange rate that was+used, for this transaction. These transaction prices are fixed, and do+not change over time. - Such priced amounts can be displayed in their transaction price's-commodity, by using the `--cost/-B' flag (B for "cost Basis"),-supported by most hledger commands.+ Amounts with transaction prices can be displayed in the transaction+price's commodity, by using the `--cost/-B' flag supported by most+hledger commands (mnemonic: "cost Basis"). - There are three ways to specify a transaction price:+ There are several ways to record a transaction price: 1. Write the unit price (aka exchange rate), as `@ UNITPRICE' after the amount:@@ -507,38 +545,39 @@ File: hledger_journal.5.info, Node: Market prices, Prev: Transaction prices, Up: Prices -1.7.2 Market prices+1.8.2 Market prices ------------------- Market prices are not tied to a particular transaction; they represent-historical exchange rates between two commodities, usually from some-public market which publishes such rates.+historical exchange rates between two commodities. (Ledger calls them+historical prices.) For example, the prices published by a stock+exchange or the foreign exchange market. Some commands (balance,+currently) can use this information to show the market value of things+at a given date. - When market prices are known, the `-V/--value' option will use them-to convert reported amounts to their market value as of the report end-date. This option is currently available only with the balance command.+ To record market prices, use P directives in the main journal or in+an included file. Their format is: - You record market prices (Ledger calls them historical prices) with-a P directive, in the journal or perhaps in a separate included file.-Market price directives have the format: +P DATE COMMODITYBEINGPRICED UNITPRICE -P DATE COMMODITYSYMBOL UNITPRICE+ DATE is a simple date as usual. COMMODITYBEINGPRICED is the symbol of+the commodity being priced (just the symbol, no quantity). UNITPRICE is+an ordinary amount (symbol and quantity) in a second commodity,+specifying the unit price or conversion rate for the first commodity in+terms of the second, on the given date. - For example, the following directives say that the euro's exchange-rate was 1.35 US dollars during 2009, and $1.40 from 2010 onward (and-unknown before 2009).+ For example, the following directives say that one euro was worth+1.35 US dollars during 2009, and $1.40 from 2010 onward: P 2009/1/1 € $1.35 P 2010/1/1 € $1.40 - Example use for market prices: tracking the value of stocks.- File: hledger_journal.5.info, Node: Comments, Next: Tags, Prev: Prices, Up: FILE FORMAT -1.8 Comments+1.9 Comments ============ Lines in the journal beginning with a semicolon (`;') or hash (`#') or@@ -579,8 +618,8 @@ File: hledger_journal.5.info, Node: Tags, Next: Directives, Prev: Comments, Up: FILE FORMAT -1.9 Tags-========+1.10 Tags+========= A _tag_ is a word followed by a full colon inside a transaction or posting comment. You can write multiple tags, comma separated. Eg: `; a@@ -607,7 +646,7 @@ File: hledger_journal.5.info, Node: Directives, Prev: Tags, Up: FILE FORMAT -1.10 Directives+1.11 Directives =============== * Menu:@@ -624,7 +663,7 @@ File: hledger_journal.5.info, Node: Account aliases, Next: account directive, Up: Directives -1.10.1 Account aliases+1.11.1 Account aliases ---------------------- You can define aliases which rewrite your account names (after reading@@ -653,7 +692,7 @@ File: hledger_journal.5.info, Node: Basic aliases, Next: Regex aliases, Up: Account aliases -1.10.1.1 Basic aliases+1.11.1.1 Basic aliases ...................... To set an account alias, use the `alias' directive in your journal@@ -678,7 +717,7 @@ File: hledger_journal.5.info, Node: Regex aliases, Next: Multiple aliases, Prev: Basic aliases, Up: Account aliases -1.10.1.2 Regex aliases+1.11.1.2 Regex aliases ...................... There is also a more powerful variant that uses a regular expression,@@ -704,7 +743,7 @@ File: hledger_journal.5.info, Node: Multiple aliases, Next: end aliases, Prev: Regex aliases, Up: Account aliases -1.10.1.3 Multiple aliases+1.11.1.3 Multiple aliases ......................... You can define as many aliases as you like using directives or@@ -721,7 +760,7 @@ File: hledger_journal.5.info, Node: end aliases, Prev: Multiple aliases, Up: Account aliases -1.10.1.4 end aliases+1.11.1.4 end aliases .................... You can clear (forget) all currently defined aliases with the `end@@ -733,7 +772,7 @@ File: hledger_journal.5.info, Node: account directive, Next: apply account directive, Prev: Account aliases, Up: Directives -1.10.2 account directive+1.11.2 account directive ------------------------ The `account' directive predefines account names, as in Ledger and@@ -755,7 +794,7 @@ File: hledger_journal.5.info, Node: apply account directive, Next: Multi-line comments, Prev: account directive, Up: Directives -1.10.3 apply account directive+1.11.3 apply account directive ------------------------------ You can specify a parent account which will be prepended to all accounts@@ -794,7 +833,7 @@ File: hledger_journal.5.info, Node: Multi-line comments, Next: commodity directive, Prev: apply account directive, Up: Directives -1.10.4 Multi-line comments+1.11.4 Multi-line comments -------------------------- A line containing just `comment' starts a multi-line comment, and a@@ -803,7 +842,7 @@ File: hledger_journal.5.info, Node: commodity directive, Next: Default commodity, Prev: Multi-line comments, Up: Directives -1.10.5 commodity directive+1.11.5 commodity directive -------------------------- The `commodity' directive predefines commodities (currently this is@@ -838,7 +877,7 @@ File: hledger_journal.5.info, Node: Default commodity, Next: Default year, Prev: commodity directive, Up: Directives -1.10.6 Default commodity+1.11.6 Default commodity ------------------------ The D directive sets a default commodity (and display format), to be@@ -859,7 +898,7 @@ File: hledger_journal.5.info, Node: Default year, Next: Including other files, Prev: Default commodity, Up: Directives -1.10.7 Default year+1.11.7 Default year ------------------- You can set a default year to be used for subsequent dates which don't@@ -886,7 +925,7 @@ File: hledger_journal.5.info, Node: Including other files, Prev: Default year, Up: Directives -1.10.8 Including other files+1.11.8 Including other files ---------------------------- You can pull in the content of additional journal files by writing an@@ -927,69 +966,71 @@ Node: Top94 Node: FILE FORMAT2284 Ref: #file-format2410-Node: Transactions2569-Ref: #transactions2689-Node: Dates3632-Ref: #dates3760-Node: Simple dates3825-Ref: #simple-dates3953-Node: Secondary dates4317-Ref: #secondary-dates4473-Node: Posting dates6033-Ref: #posting-dates6164-Node: Account names7535-Ref: #account-names7674-Node: Amounts8159-Ref: #amounts8297-Node: Virtual Postings10295-Ref: #virtual-postings10456-Node: Balance Assertions11676-Ref: #balance-assertions11840-Node: Assertions and ordering12662-Ref: #assertions-and-ordering12847-Node: Assertions and commodities13878-Ref: #assertions-and-commodities14104-Node: Assertions and subaccounts14796-Ref: #assertions-and-subaccounts15030-Node: Assertions and virtual postings15552-Ref: #assertions-and-virtual-postings15761-Node: Prices15902-Ref: #prices16034-Node: Transaction prices16085-Ref: #transaction-prices16230-Node: Market prices17837-Ref: #market-prices17972-Node: Comments18860-Ref: #comments18982-Node: Tags20094-Ref: #tags20212-Node: Directives21135-Ref: #directives21250-Node: Account aliases21443-Ref: #account-aliases21589-Node: Basic aliases22191-Ref: #basic-aliases22336-Node: Regex aliases23024-Ref: #regex-aliases23194-Node: Multiple aliases23964-Ref: #multiple-aliases24138-Node: end aliases24634-Ref: #end-aliases24776-Node: account directive24878-Ref: #account-directive25060-Node: apply account directive25356-Ref: #apply-account-directive25554-Node: Multi-line comments26214-Ref: #multi-line-comments26406-Node: commodity directive26533-Ref: #commodity-directive26719-Node: Default commodity27592-Ref: #default-commodity27767-Node: Default year28303-Ref: #default-year28470-Node: Including other files28893-Ref: #including-other-files29052-Node: EDITOR SUPPORT29448-Ref: #editor-support29568+Node: Transactions2593+Ref: #transactions2713+Node: Dates3656+Ref: #dates3784+Node: Simple dates3849+Ref: #simple-dates3977+Node: Secondary dates4341+Ref: #secondary-dates4497+Node: Posting dates6057+Ref: #posting-dates6188+Node: Account names7559+Ref: #account-names7698+Node: Amounts8183+Ref: #amounts8321+Node: Virtual Postings10420+Ref: #virtual-postings10581+Node: Balance Assertions11801+Ref: #balance-assertions11978+Node: Assertions and ordering12800+Ref: #assertions-and-ordering12985+Node: Assertions and commodities14016+Ref: #assertions-and-commodities14242+Node: Assertions and subaccounts14934+Ref: #assertions-and-subaccounts15168+Node: Assertions and virtual postings15690+Ref: #assertions-and-virtual-postings15899+Node: Balance Assignments16040+Ref: #balance-assignments16209+Node: Prices17327+Ref: #prices17460+Node: Transaction prices17511+Ref: #transaction-prices17656+Node: Market prices19236+Ref: #market-prices19371+Node: Comments20371+Ref: #comments20493+Node: Tags21605+Ref: #tags21725+Node: Directives22648+Ref: #directives22763+Node: Account aliases22956+Ref: #account-aliases23102+Node: Basic aliases23704+Ref: #basic-aliases23849+Node: Regex aliases24537+Ref: #regex-aliases24707+Node: Multiple aliases25477+Ref: #multiple-aliases25651+Node: end aliases26147+Ref: #end-aliases26289+Node: account directive26391+Ref: #account-directive26573+Node: apply account directive26869+Ref: #apply-account-directive27067+Node: Multi-line comments27727+Ref: #multi-line-comments27919+Node: commodity directive28046+Ref: #commodity-directive28232+Node: Default commodity29105+Ref: #default-commodity29280+Node: Default year29816+Ref: #default-year29983+Node: Including other files30406+Ref: #including-other-files30565+Node: EDITOR SUPPORT30961+Ref: #editor-support31081 End Tag Table
doc/other/hledger_journal.5.txt view
@@ -187,8 +187,10 @@ o amounts are a number (the "quantity") and optionally a currency sym- bol/commodity name (the "commodity"). - o the commodity is a symbol, word, or double-quoted phrase, on the left- or right, with or without a separating space+ o the commodity is a symbol, word, or phrase, on the left or right,+ with or without a separating space. If the commodity contains num-+ bers, spaces or non-word punctuation it must be enclosed in double+ quotes. o negative amounts with a commodity on the left can have the minus sign before or after it@@ -251,7 +253,7 @@ more correct and provides better error checking. Balance Assertions- hledger supports ledger-style balance assertions in journal files.+ hledger supports Ledger-style balance assertions in journal files. These look like =EXPECTEDBALANCE following a posting's amount. Eg in this example we assert the expected dollar balance in accounts a and b after each posting:@@ -327,21 +329,49 @@ Balance assertions are checked against all postings, both real and vir- tual. They are not affected by the --real/-R flag or real: query. + Balance Assignments+ Ledger-style balance assignments are also supported. These are like+ balance assertions, but with no posting amount on the left side of the+ equals sign; instead it is calculated automatically so as to satisfy+ the assertion. This can be a convenience during data entry, eg when+ setting opening balances:++ ; starting a new journal, set asset account balances+ 2016/1/1 opening balances+ assets:checking = $409.32+ assets:savings = $735.24+ assets:cash = $42+ equity:opening balances++ or when adjusting a balance to reality:++ ; no cash left; update balance, record any untracked spending as a generic expense+ 2016/1/15+ assets:cash = $0+ expenses:misc++ The calculated amount depends on the account's balance in the commodity+ at that point (which depends on the previously-dated postings of the+ commodity to that account since the last balance assertion or assign-+ ment). Note that using balance assignments makes your journal a little+ less explicit; to know the exact amount posted, you have to run hledger+ or do the calculations yourself, instead of just reading it.+ Prices Transaction prices- When recording a transaction, you can also record an amount's price in- another commodity. This documents the exchange rate, cost (of a pur-- chase), or selling price (of a sale) that was in effect within this- particular transaction (or more precisely, within the particular post-- ing). These transaction prices are fixed, and do not change.+ Within a transaction posting, you can record an amount's price in+ another commodity. This can be used to document the cost (for a pur-+ chase), or selling price (for a sale), or the exchange rate that was+ used, for this transaction. These transaction prices are fixed, and do+ not change over time. - Such priced amounts can be displayed in their transaction price's com-- modity, by using the --cost/-B flag (B for "cost Basis"), supported by- most hledger commands.+ Amounts with transaction prices can be displayed in the transaction+ price's commodity, by using the --cost/-B flag supported by most+ hledger commands (mnemonic: "cost Basis"). - There are three ways to specify a transaction price:+ There are several ways to record a transaction price: - 1. Write the unit price (aka exchange rate), as @ UNITPRICE after the+ 1. Write the unit price (aka exchange rate), as @ UNITPRICE after the amount: 2009/1/1@@ -355,7 +385,7 @@ assets:cash 3. Or let hledger infer the price so as to balance the transaction. To- permit this, you must fully specify all posting amounts, and their+ permit this, you must fully specify all posting amounts, and their sum must have a non-zero amount in exactly two commodities: 2009/1/1@@ -369,46 +399,46 @@ assets:foreign currency $135.00 assets:cash $-135.00 - Example use for transaction prices: recording the effective conversion+ Example use for transaction prices: recording the effective conversion rate of purchases made in a foreign currency. Market prices- Market prices are not tied to a particular transaction; they represent- historical exchange rates between two commodities, usually from some- public market which publishes such rates.+ Market prices are not tied to a particular transaction; they represent+ historical exchange rates between two commodities. (Ledger calls them+ historical prices.) For example, the prices published by a stock+ exchange or the foreign exchange market. Some commands (balance, cur-+ rently) can use this information to show the market value of things at+ a given date. - When market prices are known, the -V/--value option will use them to- convert reported amounts to their market value as of the report end- date. This option is currently available only with the balance com-- mand.+ To record market prices, use P directives in the main journal or in an+ included file. Their format is: - You record market prices (Ledger calls them historical prices) with a P- directive, in the journal or perhaps in a separate included file. Mar-- ket price directives have the format:+ P DATE COMMODITYBEINGPRICED UNITPRICE - P DATE COMMODITYSYMBOL UNITPRICE+ DATE is a simple date as usual. COMMODITYBEINGPRICED is the symbol of+ the commodity being priced (just the symbol, no quantity). UNITPRICE+ is an ordinary amount (symbol and quantity) in a second commodity,+ specifying the unit price or conversion rate for the first commodity in+ terms of the second, on the given date. - For example, the following directives say that the euro's exchange rate- was 1.35 US dollars during 2009, and $1.40 from 2010 onward (and- unknown before 2009).+ For example, the following directives say that one euro was worth 1.35+ US dollars during 2009, and $1.40 from 2010 onward: P 2009/1/1 $1.35 P 2010/1/1 $1.40 - Example use for market prices: tracking the value of stocks.- Comments- Lines in the journal beginning with a semicolon (;) or hash (#) or- asterisk (*) are comments, and will be ignored. (Asterisk comments- make it easy to treat your journal like an org-mode outline in emacs.)+ Lines in the journal beginning with a semicolon (;) or hash (#) or+ asterisk (*) are comments, and will be ignored. (Asterisk comments+ make it easy to treat your journal like an org-mode outline in emacs.) - Also, anything between comment and end comment directives is a- (multi-line) comment. If there is no end comment, the comment extends+ Also, anything between comment and end comment directives is a+ (multi-line) comment. If there is no end comment, the comment extends to the end of the file. - You can attach comments to a transaction by writing them after the- description and/or indented on the following lines (before the post-- ings). Similarly, you can attach comments to an individual posting by+ You can attach comments to a transaction by writing them after the+ description and/or indented on the following lines (before the post-+ ings). Similarly, you can attach comments to an individual posting by writing them after the amount and/or indented on the following lines. Some examples:@@ -433,30 +463,30 @@ ; a journal comment (because not indented) Tags- A tag is a word followed by a full colon inside a transaction or post-- ing comment. You can write multiple tags, comma separated. Eg:- ; a comment containing sometag:, anothertag:. You can search for tags+ A tag is a word followed by a full colon inside a transaction or post-+ ing comment. You can write multiple tags, comma separated. Eg:+ ; a comment containing sometag:, anothertag:. You can search for tags with the tag: query. - A tag can also have a value, which is any text between the colon and- the next comma or newline, excluding leading/trailing whitespace. (So+ A tag can also have a value, which is any text between the colon and+ the next comma or newline, excluding leading/trailing whitespace. (So hledger tag values can not contain commas or newlines). - Tags in a transaction comment affect the transaction and all of its- postings, while tags in a posting comment affect only that posting.- For example, the following transaction has three tags (A, TAG2,+ Tags in a transaction comment affect the transaction and all of its+ postings, while tags in a posting comment affect only that posting.+ For example, the following transaction has three tags (A, TAG2, third-tag) and the posting has four (A, TAG2, third-tag, posting-tag): 1/1 a transaction ; A:, TAG2: ; third-tag: a third transaction tag, this time with a value (a) $1 ; posting-tag: - Tags are like Ledger's metadata feature, except hledger's tag values+ Tags are like Ledger's metadata feature, except hledger's tag values are simple strings. Directives Account aliases- You can define aliases which rewrite your account names (after reading+ You can define aliases which rewrite your account names (after reading the journal, before generating reports). hledger's account aliases can be useful for: @@ -473,8 +503,8 @@ See also How to use account aliases. Basic aliases- To set an account alias, use the alias directive in your journal file.- This affects all subsequent journal entries in the current file or its+ To set an account alias, use the alias directive in your journal file.+ This affects all subsequent journal entries in the current file or its included files. The spaces around the = are optional: alias OLD = NEW@@ -482,53 +512,53 @@ Or, you can use the --alias 'OLD=NEW' option on the command line. This affects all entries. It's useful for trying out aliases interactively. - OLD and NEW are full account names. hledger will replace any occur-- rence of the old account name with the new one. Subaccounts are also+ OLD and NEW are full account names. hledger will replace any occur-+ rence of the old account name with the new one. Subaccounts are also affected. Eg: alias checking = assets:bank:wells fargo:checking # rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a" Regex aliases- There is also a more powerful variant that uses a regular expression,- indicated by the forward slashes. (This was the default behaviour in+ There is also a more powerful variant that uses a regular expression,+ indicated by the forward slashes. (This was the default behaviour in hledger 0.24-0.25): alias /REGEX/ = REPLACEMENT or --alias '/REGEX/=REPLACEMENT'. - REGEX is a case-insensitive regular expression. Anywhere it matches- inside an account name, the matched part will be replaced by REPLACE-- MENT. If REGEX contains parenthesised match groups, these can be ref-+ REGEX is a case-insensitive regular expression. Anywhere it matches+ inside an account name, the matched part will be replaced by REPLACE-+ MENT. If REGEX contains parenthesised match groups, these can be ref- erenced by the usual numeric backreferences in REPLACEMENT. Note, cur-- rently regular expression aliases may cause noticeable slow-downs.+ rently regular expression aliases may cause noticeable slow-downs. (And if you use Ledger on your hledger file, they will be ignored.) Eg: alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3 # rewrites "assets:bank:wells fargo:checking" to "assets:wells fargo checking" Multiple aliases- You can define as many aliases as you like using directives or com-- mand-line options. Aliases are recursive - each alias sees the result- of applying previous ones. (This is different from Ledger, where+ You can define as many aliases as you like using directives or com-+ mand-line options. Aliases are recursive - each alias sees the result+ of applying previous ones. (This is different from Ledger, where aliases are non-recursive by default). Aliases are applied in the fol- lowing order: - 1. alias directives, most recently seen first (recent directives take+ 1. alias directives, most recently seen first (recent directives take precedence over earlier ones; directives not yet seen are ignored) 2. alias options, in the order they appear on the command line end aliases- You can clear (forget) all currently defined aliases with the+ You can clear (forget) all currently defined aliases with the end aliases directive: end aliases account directive- The account directive predefines account names, as in Ledger and Bean-- count. This may be useful for your own documentation; hledger doesn't+ The account directive predefines account names, as in Ledger and Bean-+ count. This may be useful for your own documentation; hledger doesn't make use of it yet. ; account ACCT@@ -543,8 +573,8 @@ ; etc. apply account directive- You can specify a parent account which will be prepended to all- accounts within a section of the journal. Use the apply account and+ You can specify a parent account which will be prepended to all+ accounts within a section of the journal. Use the apply account and end apply account directives like so: apply account home@@ -561,7 +591,7 @@ home:food $10 home:cash $-10 - If end apply account is omitted, the effect lasts to the end of the+ If end apply account is omitted, the effect lasts to the end of the file. Included files are also affected, eg: apply account business@@ -570,16 +600,16 @@ apply account personal include personal.journal - Prior to hledger 1.0, legacy account and end spellings were also sup-+ Prior to hledger 1.0, legacy account and end spellings were also sup- ported. Multi-line comments- A line containing just comment starts a multi-line comment, and a line+ A line containing just comment starts a multi-line comment, and a line containing just end comment ends it. See comments. commodity directive- The commodity directive predefines commodities (currently this is just- informational), and also it may define the display format for amounts+ The commodity directive predefines commodities (currently this is just+ informational), and also it may define the display format for amounts in this commodity (overriding the automatically inferred format). It may be written on a single line, like this:@@ -591,8 +621,8 @@ ; separating thousands with comma. commodity 1,000.0000 AAAA - or on multiple lines, using the "format" subdirective. In this case- the commodity symbol appears twice and should be the same in both+ or on multiple lines, using the "format" subdirective. In this case+ the commodity symbol appears twice and should be the same in both places: ; commodity SYMBOL@@ -605,10 +635,10 @@ format INR 9,99,99,999.00 Default commodity- The D directive sets a default commodity (and display format), to be+ The D directive sets a default commodity (and display format), to be used for amounts without a commodity symbol (ie, plain numbers). (Note- this differs from Ledger's default commodity directive.) The commodity- and display format will be applied to all subsequent commodity-less+ this differs from Ledger's default commodity directive.) The commodity+ and display format will be applied to all subsequent commodity-less amounts, or until the next D directive. # commodity-less amounts should be treated as dollars@@ -620,8 +650,8 @@ b Default year- You can set a default year to be used for subsequent dates which don't- specify a year. This is a line beginning with Y followed by the year.+ You can set a default year to be used for subsequent dates which don't+ specify a year. This is a line beginning with Y followed by the year. Eg: Y2009 ; set default year to 2009@@ -641,24 +671,24 @@ assets Including other files- You can pull in the content of additional journal files by writing an+ You can pull in the content of additional journal files by writing an include directive, like this: include path/to/file.journal - If the path does not begin with a slash, it is relative to the current+ If the path does not begin with a slash, it is relative to the current file. Glob patterns (*) are not currently supported. - The include directive can only be used in journal files. It can+ The include directive can only be used in journal files. It can include journal, timeclock or timedot files, but not CSV files. EDITOR SUPPORT Add-on modes exist for various text editors, to make working with jour-- nal files easier. They add colour, navigation aids and helpful com-- mands. For hledger users who edit the journal file directly (the+ nal files easier. They add colour, navigation aids and helpful com-+ mands. For hledger users who edit the journal file directly (the majority), using one of these modes is quite recommended. - These were written with Ledger in mind, but also work with hledger+ These were written with Ledger in mind, but also work with hledger files: @@ -675,7 +705,7 @@ REPORTING BUGS- Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel+ Report bugs at http://bugs.hledger.org (or on the #hledger IRC channel or hledger mail list) @@ -689,7 +719,7 @@ SEE ALSO- hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1),+ hledger(1), hledger-ui(1), hledger-web(1), hledger-api(1), hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time- dot(5), ledger(1) @@ -697,4 +727,4 @@ -hledger 1.0 October 2016 hledger_journal(5)+hledger 1.1 December 2016 hledger_journal(5)
doc/other/hledger_timeclock.5 view
@@ -1,5 +1,5 @@ -.TH "hledger_timeclock" "5" "October 2016" "hledger 1.0" "hledger User Manuals"+.TH "hledger_timeclock" "5" "December 2016" "hledger 1.1" "hledger User Manuals"
doc/other/hledger_timeclock.5.info view
@@ -4,7 +4,7 @@ File: hledger_timeclock.5.info, Node: Top, Up: (dir) -hledger_timeclock(5) hledger 1.0+hledger_timeclock(5) hledger 1.1 ******************************** hledger can read timeclock files. As with Ledger, these are (a subset
doc/other/hledger_timeclock.5.txt view
@@ -79,4 +79,4 @@ -hledger 1.0 October 2016 hledger_timeclock(5)+hledger 1.1 December 2016 hledger_timeclock(5)
doc/other/hledger_timedot.5 view
@@ -1,5 +1,5 @@ -.TH "hledger_timedot" "5" "October 2016" "hledger 1.0" "hledger User Manuals"+.TH "hledger_timedot" "5" "December 2016" "hledger 1.1" "hledger User Manuals"
doc/other/hledger_timedot.5.info view
@@ -4,7 +4,7 @@ File: hledger_timedot.5.info, Node: Top, Up: (dir) -hledger_timedot(5) hledger 1.0+hledger_timedot(5) hledger 1.1 ****************************** Timedot is a plain text format for logging dated, categorised quantities
doc/other/hledger_timedot.5.txt view
@@ -120,4 +120,4 @@ -hledger 1.0 October 2016 hledger_timedot(5)+hledger 1.1 December 2016 hledger_timedot(5)
hledger.cabal view
@@ -1,9 +1,9 @@--- This file has been generated from package.yaml by hpack version 0.14.0.+-- This file has been generated from package.yaml by hpack version 0.15.0. -- -- see: https://github.com/sol/hpack name: hledger-version: 1.0.1+version: 1.1 stability: stable category: Finance, Console synopsis: Command-line interface for the hledger accounting tool@@ -80,9 +80,9 @@ library ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans- cpp-options: -DVERSION="1.0.1"+ cpp-options: -DVERSION="1.1" build-depends:- base >=4.3 && <5+ base >=4.8 && <5 , base-compat >=0.8.1 , directory , file-embed >=0.0.10 && <0.1@@ -91,7 +91,7 @@ , process , temporary , tabular >=0.2 && <0.3- , hledger-lib ==1.0.1+ , hledger-lib >= 1.1 && < 1.2 , bytestring , containers , unordered-containers@@ -163,9 +163,9 @@ hs-source-dirs: app ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans- cpp-options: -DVERSION="1.0.1"+ cpp-options: -DVERSION="1.1" build-depends:- base >=4.3 && <5+ base >=4.8 && <5 , base-compat >=0.8.1 , directory , file-embed >=0.0.10 && <0.1@@ -174,8 +174,8 @@ , process , temporary , tabular >=0.2 && <0.3- , hledger-lib >= 1.0.1- , hledger >= 1.0.1+ , hledger-lib >= 1.1 && < 1.2+ , hledger == 1.1 , bytestring , containers , unordered-containers@@ -209,7 +209,7 @@ if flag(oldtime) build-depends: time <1.5- , oldtime+ , old-locale else build-depends: time >=1.5@@ -224,9 +224,9 @@ hs-source-dirs: test ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans- cpp-options: -DVERSION="1.0.1"+ cpp-options: -DVERSION="1.1" build-depends:- base >=4.3 && <5+ base >=4.8 && <5 , base-compat >=0.8.1 , directory , file-embed >=0.0.10 && <0.1@@ -235,8 +235,8 @@ , process , temporary , tabular >=0.2 && <0.3- , hledger-lib ==1.0.1- , hledger+ , hledger-lib >= 1.1 && < 1.2+ , hledger == 1.1 , bytestring , containers , unordered-containers@@ -270,7 +270,7 @@ if flag(oldtime) build-depends: time <1.5- , oldtime+ , old-locale else build-depends: time >=1.5@@ -287,7 +287,7 @@ ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans default-language: Haskell2010 build-depends:- base >=4.3 && <5+ base >=4.8 && <5 , base-compat >=0.8.1 , directory , file-embed >=0.0.10 && <0.1@@ -296,15 +296,15 @@ , process , temporary , tabular >=0.2 && <0.3- , hledger-lib- , hledger+ , hledger-lib >= 1.1 && < 1.2+ , hledger == 1.1 , criterion , html , timeit if flag(oldtime) build-depends: time <1.5- , oldtime+ , old-locale else build-depends: time >=1.5