change messages, add sample script
authorKen-ichi Mito <mitty@mitty.jp>
Wed, 21 Aug 2013 03:56:22 +0000 (12:56 +0900)
committerKen-ichi Mito <mitty@mitty.jp>
Wed, 21 Aug 2013 03:56:22 +0000 (12:56 +0900)
Dev/github/GitHubBackup.pm
Dev/github/github-backup.pl [new file with mode: 0644]

index 35a1836..6542ef3 100644 (file)
@@ -193,6 +193,15 @@ sub directory {
     return $path;
 }
 
+sub message {
+    my $self = shift;
+    my $message  = shift;
+    
+    print $self->full_name, " $message\n";
+    
+    return $self;
+}
+
 sub sync {
     my $self = shift;
     my $url = shift;
@@ -200,12 +209,12 @@ sub sync {
     
     if (-d "$dir") {
         local $CWD = $dir;
-        print "fetch $dir\n";
+        $self->message("++> $dir");
         Git::Repository->run(fetch => '--all');
         return $self;
     }
     
-    print "clone $dir\n";
+    $self->message("==> $dir");
     mkpath $dir;
     Git::Repository->run(clone => '--mirror' => $url => $dir);
     
@@ -242,16 +251,16 @@ sub set_forks {
     my @fetch;
     foreach my $fork (@{$self->forks}) {
         if ($remotes =~ /$fork->{full_name}/) {
-            print "skip ", $fork->{full_name}, "\n";
+            $self->message("--- ". $fork->{full_name});
             next;
         }
-        print "add ", $fork->{full_name}, "\n";
+        $self->message("+++ ". $fork->{full_name});
         Git::Repository->run(remote => add => $fork->{full_name} => $fork->{clone_url});
         push @fetch, $fork->{full_name};
     }
     
     foreach my $fork (@fetch) {
-        print "fetch $fork\n";
+        $self->message("--> $fork");
         Git::Repository->run(fetch => $fork);
     }
     
@@ -269,7 +278,7 @@ sub clone_wiki {
         'https://github.com/' . $self->full_name . '/wiki'
     );
     if ($res->code != 200) {
-        print "$dir does not exist\n";
+        $self->message("wiki does not exist");
         return $self;
     }
     
@@ -302,7 +311,7 @@ sub save_issues {
     local $CWD = $dir;
     foreach my $issue (@{$self->issues}) {
         my $number = $issue->{number};
-        print "save issue/$number\n";
+        $self->message("+++ issue/$number");
         
         open my $fh, ">$number.json";
         print $fh $json->encode($issue);
diff --git a/Dev/github/github-backup.pl b/Dev/github/github-backup.pl
new file mode 100644 (file)
index 0000000..da6736a
--- /dev/null
@@ -0,0 +1,15 @@
+#! /usr/bin/perl -w
+
+use strict;
+use warnings;
+use utf8;
+
+use GitHubBackup;
+
+my $gh = GitHubBackup->new(
+    account => 'mittyorz',
+    repository => 'munin-plugins',
+    directory => 'repos',
+);
+
+$gh->backup;