diff options
author | franck cuny <franck@lumberjaph.net> | 2011-03-13 15:10:07 +0100 |
---|---|---|
committer | franck cuny <franck@lumberjaph.net> | 2011-03-13 15:10:07 +0100 |
commit | 70f2292693f88dbb7352927c1d6b6ae762e54faf (patch) | |
tree | ef6292196d52eabf0c915c8d595c56622d2ca337 /lib | |
parent | find and render a page for version 'master' (diff) | |
download | ballet-70f2292693f88dbb7352927c1d6b6ae762e54faf.tar.gz |
path to the repo, not the git dir; update page
Signed-off-by: franck cuny <franck@lumberjaph.net>
Diffstat (limited to '')
-rw-r--r-- | lib/ballet/Git.pm | 5 | ||||
-rw-r--r-- | lib/ballet/Page.pm | 23 |
2 files changed, 25 insertions, 3 deletions
diff --git a/lib/ballet/Git.pm b/lib/ballet/Git.pm index 6ade622..3e2fc6a 100644 --- a/lib/ballet/Git.pm +++ b/lib/ballet/Git.pm @@ -1,6 +1,7 @@ package ballet::Git; use Mouse; +use File::Spec; use Git::Repository; with 'ballet::Page'; @@ -17,8 +18,10 @@ has git_repo => ( lazy => 1, default => sub { my $self = shift; - Git::Repository->new( git_dir => $self->wiki_path ),; + Git::Repository->new( + git_dir => File::Spec->catdir( $self->wiki_path, '.git' ) ),; }, ); + 1; diff --git a/lib/ballet/Page.pm b/lib/ballet/Page.pm index 7eafa90..63486f5 100644 --- a/lib/ballet/Page.pm +++ b/lib/ballet/Page.pm @@ -1,24 +1,43 @@ package ballet::Page; +use File::Spec; use Mouse::Role; sub find_page { my ($self, $name, $version) = @_; $version ||= 'master'; + my @output = $self->git_repo->run('ls-tree', $version); + my @page = grep {$_ =~ /$name\./} @output; + if (!@page) { die "blablabla"; } - return $self->_format_page(shift @page); - + my $content = $self->_format_page(shift @page); +} + +sub update_page { + my ($self, $page_name, $content) = @_; + + open my $fh, '>', + File::Spec->catfile( $self->wiki_path, $page_name . '.md' ); + print $fh $content; + close $fh; + + $self->git_repo->run(add => $page_name.'.md'); + $self->git_repo->run('commit' => '-m', 'udpate' ); + + 1; } sub _format_page { my ($self, $blob) = @_; + my @line = split (/\s/, $blob); my @content = $self->git_repo->run('cat-file', '-p', $line[2]); + return join("\n", @content); } |