summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/ballet/Git.pm5
-rw-r--r--lib/ballet/Page.pm23
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);
 }