Revision history for App-HomeBank2Ledger.
+0.006 2019-09-02 20:02:53-06:00 MST7MDT
+ * Add fatpack release.
+
0.005 2019-08-17 16:26:33-06:00 MST7MDT
* Add --budget option for converting HomeBank budget to Ledger.
* Support quoting commodities when needed.
"requires" : {
"Dist::Zilla" : "5",
"Dist::Zilla::Plugin::ConsistentVersionTest" : "0",
+ "Dist::Zilla::Plugin::Run::Release" : "0",
"Dist::Zilla::PluginBundle::Author::CCM" : "0",
"Dist::Zilla::PluginBundle::Filter" : "0",
"Pod::Coverage::TrustPod" : "0",
"provides" : {
"App::HomeBank2Ledger" : {
"file" : "lib/App/HomeBank2Ledger.pm",
- "version" : "0.005"
+ "version" : "0.006"
},
"App::HomeBank2Ledger::Formatter" : {
"file" : "lib/App/HomeBank2Ledger/Formatter.pm",
- "version" : "0.005"
+ "version" : "0.006"
},
"App::HomeBank2Ledger::Formatter::Beancount" : {
"file" : "lib/App/HomeBank2Ledger/Formatter/Beancount.pm",
- "version" : "0.005"
+ "version" : "0.006"
},
"App::HomeBank2Ledger::Formatter::Ledger" : {
"file" : "lib/App/HomeBank2Ledger/Formatter/Ledger.pm",
- "version" : "0.005"
+ "version" : "0.006"
},
"App::HomeBank2Ledger::Ledger" : {
"file" : "lib/App/HomeBank2Ledger/Ledger.pm",
- "version" : "0.005"
+ "version" : "0.006"
},
"App::HomeBank2Ledger::Util" : {
"file" : "lib/App/HomeBank2Ledger/Util.pm",
- "version" : "0.005"
+ "version" : "0.006"
},
"File::HomeBank" : {
"file" : "lib/File/HomeBank.pm",
- "version" : "0.005"
+ "version" : "0.006"
}
},
"release_status" : "stable",
"web" : "https://github.com/chazmcgarvey/homebank2ledger"
}
},
- "version" : "0.005",
+ "version" : "0.006",
"x_authority" : "cpan:CCM",
"x_generated_by_perl" : "v5.28.0",
"x_serialization_backend" : "Cpanel::JSON::XS version 4.08"
provides:
App::HomeBank2Ledger:
file: lib/App/HomeBank2Ledger.pm
- version: '0.005'
+ version: '0.006'
App::HomeBank2Ledger::Formatter:
file: lib/App/HomeBank2Ledger/Formatter.pm
- version: '0.005'
+ version: '0.006'
App::HomeBank2Ledger::Formatter::Beancount:
file: lib/App/HomeBank2Ledger/Formatter/Beancount.pm
- version: '0.005'
+ version: '0.006'
App::HomeBank2Ledger::Formatter::Ledger:
file: lib/App/HomeBank2Ledger/Formatter/Ledger.pm
- version: '0.005'
+ version: '0.006'
App::HomeBank2Ledger::Ledger:
file: lib/App/HomeBank2Ledger/Ledger.pm
- version: '0.005'
+ version: '0.006'
App::HomeBank2Ledger::Util:
file: lib/App/HomeBank2Ledger/Util.pm
- version: '0.005'
+ version: '0.006'
File::HomeBank:
file: lib/File/HomeBank.pm
- version: '0.005'
+ version: '0.006'
requires:
Carp: '0'
Exporter: '0'
bugtracker: https://github.com/chazmcgarvey/homebank2ledger/issues
homepage: https://github.com/chazmcgarvey/homebank2ledger
repository: https://github.com/chazmcgarvey/homebank2ledger.git
-version: '0.005'
+version: '0.006'
x_authority: cpan:CCM
x_generated_by_perl: v5.28.0
x_serialization_backend: 'YAML::Tiny version 1.73'
"IPC::Open3" => 0,
"Test::More" => 0
},
- "VERSION" => "0.005",
+ "VERSION" => "0.006",
"test" => {
"TESTS" => "t/*.t"
}
VERSION
- version 0.005
+ version 0.006
SYNOPSIS
continue to maintain your accounts in HomeBank and use this script to
also take advantage of the reports Ledger offers.
+INSTALL
+
+ There are several ways to install homebank2ledger to your system.
+
+ using cpanm
+
+ You can install homebank2ledger using cpanm. If you have a local perl
+ (plenv, perlbrew, etc.), you can just do:
+
+ cpanm App::Homebank2Ledger
+
+ to install the homebank2ledger executable and its dependencies. The
+ executable will be installed to your perl's bin path, like
+ ~/perl5/perlbrew/bin/homebank2ledger.
+
+ If you're installing to your system perl, you can do:
+
+ cpanm --sudo App::Homebank2Ledger
+
+ to install the homebank2ledger executable to a system directory, like
+ /usr/local/bin/homebank2ledger (depending on your perl).
+
+ Downloading just the executable
+
+ You may also choose to download homebank2ledger as a single executable,
+ like this:
+
+ curl -OL https://raw.githubusercontent.com/chazmcgarvey/homebank2ledger/solo/homebank2ledger
+ chmod +x homebank2ledger
+
+ For developers
+
+ If you're a developer and want to hack on the source, clone the
+ repository and pull the dependencies:
+
+ git clone https://github.com/chazmcgarvey/homebank2ledger.git
+ cd homebank2ledger
+ make bootstrap # installs dependencies; requires cpanm
+
OPTIONS
--version
# PODNAME: homebank2ledger
+# FATPACK - Do not remove this line.
+
use warnings;
use strict;
use App::HomeBank2Ledger;
-our $VERSION = '0.005'; # VERSION
+our $VERSION = '0.006'; # VERSION
App::HomeBank2Ledger->main(@ARGV);
=head1 VERSION
-version 0.005
+version 0.006
=head1 SYNOPSIS
=head1 DESCRIPTION
-C<homebank2ledger> converts L<HomeBank|http://homebank.free.fr/> files to a format usable by
+F<homebank2ledger> converts L<HomeBank|http://homebank.free.fr/> files to a format usable by
L<Ledger|https://www.ledger-cli.org/>. It can also convert directly to the similar
L<Beancount|http://furius.ca/beancount/> format.
This software is B<EXPERIMENTAL>, in early development. Its interface may change without notice.
-I wrote C<homebank2ledger> because I have been maintaining my own personal finances using HomeBank
+I wrote F<homebank2ledger> because I have been maintaining my own personal finances using HomeBank
(which is awesome) and I wanted to investigate using plain text accounting programs. It works well
enough for my data, but you may be using HomeBank features that I don't so there may be cases this
doesn't handle well or at all. Feel free to file a bug report. This script does NOT try to modify
Or if you don't plan to switch completely off of HomeBank, you can continue to maintain your
accounts in HomeBank and use this script to also take advantage of the reports Ledger offers.
+=head1 INSTALL
+
+There are several ways to install F<homebank2ledger> to your system.
+
+=head2 using cpanm
+
+You can install F<homebank2ledger> using L<cpanm>. If you have a local perl (plenv, perlbrew, etc.),
+you can just do:
+
+ cpanm App::Homebank2Ledger
+
+to install the F<homebank2ledger> executable and its dependencies. The executable will be installed
+to your perl's bin path, like F<~/perl5/perlbrew/bin/homebank2ledger>.
+
+If you're installing to your system perl, you can do:
+
+ cpanm --sudo App::Homebank2Ledger
+
+to install the F<homebank2ledger> executable to a system directory, like
+F</usr/local/bin/homebank2ledger> (depending on your perl).
+
+=head2 Downloading just the executable
+
+You may also choose to download F<homebank2ledger> as a single executable, like this:
+
+ curl -OL https://raw.githubusercontent.com/chazmcgarvey/homebank2ledger/solo/homebank2ledger
+ chmod +x homebank2ledger
+
+=head2 For developers
+
+If you're a developer and want to hack on the source, clone the repository and pull the
+dependencies:
+
+ git clone https://github.com/chazmcgarvey/homebank2ledger.git
+ cd homebank2ledger
+ make bootstrap # installs dependencies; requires cpanm
+
=head1 OPTIONS
=head2 --version
=head2 --rename-account STR
-Specifies a mapping for renaming accounts in the output. By default C<homebank2ledger> tries to come
+Specifies a mapping for renaming accounts in the output. By default F<homebank2ledger> tries to come
up with sensible account names (based on your HomeBank accounts and categories) that fit into five
root accounts:
use Getopt::Long 2.38 qw(GetOptionsFromArray);
use Pod::Usage;
-our $VERSION = '0.005'; # VERSION
+our $VERSION = '0.006'; # VERSION
my %ACCOUNT_TYPES = ( # map HomeBank account types to Ledger accounts
bank => 'Assets:Bank',
=head1 VERSION
-version 0.005
+version 0.006
=head1 SYNOPSIS
use Module::Pluggable search_path => [__PACKAGE__],
sub_name => 'available_formatters';
-our $VERSION = '0.005'; # VERSION
+our $VERSION = '0.006'; # VERSION
sub _croak { require Carp; Carp::croak(@_) }
=head1 VERSION
-version 0.005
+version 0.006
=head1 SYNOPSIS
use strict;
use App::HomeBank2Ledger::Util qw(commify rtrim);
+use Scalar::Util qw(looks_like_number);
use parent 'App::HomeBank2Ledger::Formatter';
-our $VERSION = '0.005'; # VERSION
+our $VERSION = '0.006'; # VERSION
my %STATUS_SYMBOLS = (
cleared => '*',
$out[-1] .= ' '.join(' ', @tags);
}
+ my $metadata = $transaction->{metadata} || {};
+ for my $key (sort keys %$metadata) {
+ my $value = looks_like_number($metadata->{$key}) ? $metadata->{$key}
+ : $self->_format_string($metadata->{$key});
+ push @out, " ; ${key}: ${value}";
+ }
+
for my $posting (@postings) {
my @line;
}
push @out, join('', @line);
+
+ my $metadata = $posting->{metadata} || {};
+ for my $key (sort keys %$metadata) {
+ my $value = looks_like_number($metadata->{$key}) ? $metadata->{$key}
+ : $self->_format_string($metadata->{$key});
+ push @out, " ; ${key}: ${value}";
+ }
}
push @out, '';
=head1 VERSION
-version 0.005
+version 0.006
=head1 DESCRIPTION
use parent 'App::HomeBank2Ledger::Formatter';
-our $VERSION = '0.005'; # VERSION
+our $VERSION = '0.006'; # VERSION
my %STATUS_SYMBOLS = (
cleared => '*',
$memo && " ; $memo",
);
+ my $metadata = $transaction->{metadata} || {};
+ for my $key (sort keys %$metadata) {
+ my $value = $self->_format_string($metadata->{$key});
+ push @out, " ; ${key}: ${value}";
+ }
+
for my $posting (@postings) {
my @line;
push @out, join('', @line);
+ my $metadata = $posting->{metadata} || {};
+ for my $key (sort keys %$metadata) {
+ my $value = $self->_format_string($metadata->{$key});
+ push @out, " ; ${key}: ${value}";
+ }
+
if (my $posting_payee = $posting->{payee}) {
$posting_payee = $self->_format_string($posting_payee);
push @out, " ; Payee: $posting_payee" if $posting_payee ne $payee;
=head1 VERSION
-version 0.005
+version 0.006
=head1 DESCRIPTION
use warnings;
use strict;
-our $VERSION = '0.005'; # VERSION
+our $VERSION = '0.006'; # VERSION
sub new {
=head1 VERSION
-version 0.005
+version 0.006
=head1 SYNOPSIS
use Exporter qw(import);
-our $VERSION = '0.005'; # VERSION
+our $VERSION = '0.006'; # VERSION
our @EXPORT_OK = qw(commify rtrim);
=head1 VERSION
-version 0.005
+version 0.006
=head1 FUNCTIONS
use XML::Entities;
use XML::Parser::Lite;
-our $VERSION = '0.005'; # VERSION
+our $VERSION = '0.006'; # VERSION
our @EXPORT_OK = qw(parse_string parse_file);
=head1 VERSION
-version 0.005
+version 0.006
=head1 SYNOPSIS
'requires' => {
'Dist::Zilla' => '5',
'Dist::Zilla::Plugin::ConsistentVersionTest' => '0',
+ 'Dist::Zilla::Plugin::Run::Release' => '0',
'Dist::Zilla::PluginBundle::Author::CCM' => '0',
'Dist::Zilla::PluginBundle::Filter' => '0',
'Pod::Coverage::TrustPod' => '0',