+ Print help/usage info and exit.
+
+ Alias: -h, -?
+
+ --manual
+
+ Print the full manual and exit.
+
+ Alias: --man
+
+ --input FILEPATH
+
+ Specify the path to the HomeBank file to read (must already exist).
+
+ Alias: --file, -i
+
+ --output FILEPATH
+
+ Specify the path to the Ledger file to write (may not exist yet). If
+ not provided, the formatted ledger will be printed on STDOUT.
+
+ Alias: -o
+
+ --format STR
+
+ Specify the output file format. If provided, must be one of:
+
+ * ledger
+
+ * beancount
+
+ --account-width NUM
+
+ Specify the number of characters to reserve for the account column in
+ transactions. Adjusting this can provide prettier formatting of the
+ output.
+
+ Defaults to 40.
+
+ --accounts
+
+ Enables account declarations.
+
+ Defaults to enabled; use --no-accounts to disable.
+
+ --payees
+
+ Enables payee declarations.
+
+ Defaults to enabled; use --no-payees to disable.
+
+ --tags
+
+ Enables tag declarations.
+
+ Defaults to enabled; use --no-tags to disable.
+
+ --commodities
+
+ Enables commodity declarations.
+
+ Defaults to enabled; use --no-commodities to disable.
+
+ --opening-date DATE
+
+ Specify the opening date for the "opening balances" transaction. This
+ transaction is created (if needed) to support HomeBank's ability to
+ configure accounts with opening balances.
+
+ Date must be in the form "YYYY-MM-DD". Defaults to the date of the
+ first transaction.
+
+ --default-account STR
+
+ Specify the account to use for one-sided transactions (if any).
+ Defaults to "Expenses:No Category".
+
+ A default account may be necessary because with Ledger all transactions
+ are double-entry.
+
+ --rename-account STR
+
+ Specifies a mapping for renaming accounts in the output. By default
+ homebank2ledger tries to come up with sensible account names (based on
+ your HomeBank accounts and categories) that fit into five root
+ accounts:
+
+ * Assets
+
+ * Liabilities
+
+ * Equity
+
+ * Income
+
+ * Expenses
+
+ The value of the argument must be of the form "REGEXP=REPLACEMENT". See
+ "EXAMPLES".
+
+ Can be repeated to rename multiple accounts.
+
+ --exclude-account STR
+
+ Specifies an account that will not be included in the output. All
+ transactions related to this account will be skipped.
+
+ Can be repeated to exclude multiple accounts.
+
+EXAMPLES
+
+ Basic usage
+
+ # Convert homebank.xhb to a Ledger-compatible file:
+ homebank2ledger path/to/homebank.xhb -o ledger.dat
+
+ # Run the Ledger balance report:
+ ledger -f ledger.dat balance
+
+ You can also combine this into one command:
+
+ homebank2ledger path/to/homebank.xhb | ledger -f - balance
+
+ Account renaming
+
+ With the "--rename-account STR" argument, you have some control over
+ the resulting account structure. This may be useful in cases where the
+ organization imposed (or encouraged) by HomeBank doesn't necessarily
+ line up with an ideal double-entry structure.
+
+ homebank2ledger path/to/homebank.xhb -o ledger.dat \
+ --rename-account '^Assets:Credit Union Savings$=Assets:Bank:Credit Union:Savings' \
+ --rename-account '^Assets:Credit Union Checking$=Assets:Bank:Credit Union:Checking'
+
+ Multiple accounts can be renamed at the same time because the first
+ part of the mapping is a regular expression. The above example could be
+ written like this:
+
+ homebank2ledger path/to/homebank.xhb -o ledger.dat \
+ --rename-account '^Assets:Credit Union =Assets:Bank:Credit Union:'
+
+ You can also merge accounts by simple renaming multiple accounts to the
+ same name:
+
+ homebank2ledger path/to/homebank.xhb -o ledger.dat \
+ --rename-account '^Liabilities:Chase VISA$=Liabilities:All Credit Cards' \
+ --rename-account '^Liabilities:Amex$=Liabilities:All Credit Cards'
+
+ If you need to do anything more complicated, of course you can edit the
+ output after converting; it's just plain text.
+
+ Beancount
+
+ # Convert homebank.xhb to a Beancount-compatible file:
+ homebank2ledger path/to/homebank.xhb -f beancount -o ledger.beancount
+
+ # Run the balances report:
+ bean-report ledger.beancount balances
+
+CAVEATS
+
+ * I didn't intend to make this a releasable robust product, so it's
+ lacking tests.
+
+ * Budgets and scheduled transactions are not (yet) converted.
+
+ * There are some minor formatting tweaks I will make (e.g.
+ consolidate transaction tags and payees)