summary refs log tree commit diff
path: root/lib/ballet/Page.pm
blob: 63486f5f41a7b255862f9c225e23ce42b02bcbf2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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;