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"; } 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); } 1;