hledger-0.14: A robust command-line accounting tool with a simple human-editable data format, similar to ledger.



A history-aware add command to help with data entry.

Note: this might not be sensible, but add has some aspirations of being both user-fiendly and pipeable/scriptable and for this reason informational messages are mostly written to stderr rather than stdout.



data PostingState Source

Information used as the basis for suggested account names, amounts, etc in add prompt

add :: [Opt] -> [String] -> Journal -> IO ()Source

Read transactions from the terminal, prompting for each field, and append them to the journal file. If the journal came from stdin, this command has no effect.

getAndAddTransactions :: Journal -> [Opt] -> [String] -> Day -> IO ()Source

Read a number of transactions from the command line, prompting, validating, displaying and appending them to the journal file, until end of input (then raise an EOF exception). Any command-line arguments are used as the first transaction's description.

getTransaction :: Journal -> [Opt] -> [String] -> Day -> IO (Transaction, Day)Source

Read a transaction from the command line, with history-aware prompting.

getPostings :: PostingState -> [Posting] -> IO [Posting]Source

Read postings from the command line until . is entered, using any provided historical postings and the journal context to guess defaults.

askFor :: String -> Maybe String -> Maybe (String -> Bool) -> InputT IO StringSource

Prompt for and read a string value, optionally with a default value and a validator. A validator causes the prompt to repeat until the input is valid. May also raise an EOF exception if control-d is pressed.

journalAddTransaction :: Journal -> [Opt] -> Transaction -> IO JournalSource

Append this transaction to the journal's file, and to the journal's transaction list.

appendToJournalFile :: FilePath -> String -> IO ()Source

Append data to a journal file; or if the file is -, dump it to stdout.

registerFromString :: String -> IO StringSource

Convert a string of journal data into a register report.

compareStrings :: String -> String -> DoubleSource

Return a similarity measure, from 0 to 1, for two strings. This is Simon White's letter pairs algorithm from http:www.catalysoft.comarticlesStrikeAMatch.html with a modification for short strings.