summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Moore <neil@s-z.org>2013-06-25 15:53:42 -0500
committerNeil Moore <neil@s-z.org>2013-06-25 16:36:01 -0500
commitac42f84040256fe3a5c159d132cbc2053309e684 (patch)
tree6365c02d129f345ac58436a0ca3b35cef349d43e
parent93aceeef4ec5ef2007d0df55d666de047acc88a9 (diff)
downloadcrawlbot-ac42f84040256fe3a5c159d132cbc2053309e684.tar.gz
crawlbot-ac42f84040256fe3a5c159d132cbc2053309e684.zip
New %branch command.
-rw-r--r--lib/Crawl/Bot/Plugin/Commit.pm16
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/Crawl/Bot/Plugin/Commit.pm b/lib/Crawl/Bot/Plugin/Commit.pm
index 3f963ea..b041583 100644
--- a/lib/Crawl/Bot/Plugin/Commit.pm
+++ b/lib/Crawl/Bot/Plugin/Commit.pm
@@ -76,12 +76,18 @@ my %colour_codes = (
url => 13
);
-sub make_web_uri {
+sub make_commit_uri {
my $self = shift;
my $commit = shift;
return "http://s-z.org/neil/git/?p=crawl.git;a=commitdiff;h=$commit";
}
+sub make_branch_uri {
+ my $self = shift;
+ my $branch = shift;
+ return "http://s-z.org/neil/git/?p=crawl.git;a=log;h=refs/heads/$branch";
+}
+
sub colour {
my $self = shift;
my $context = shift;
@@ -109,7 +115,7 @@ sub said {
my @keys = (who => $args->{who}, channel => $args->{channel}, "body");
- if ($args->{body} =~ /^%git(?:\s+(.*))?$/) {
+ if ($args->{body} =~ /^\%git(?:\s+(.*))?$/) {
my $rev = $1;
$rev = "HEAD" unless $rev;
my $commit = $self->parse_commit($rev);
@@ -134,7 +140,7 @@ sub said {
$commit->{nins}, $commit->{ndel},
$self->colour(query => "reset"),
$self->colour(query => "url"),
- $self->make_web_uri($abbr),
+ $self->make_commit_uri($abbr),
$self->colour(query => "reset"),
)
);
@@ -142,6 +148,8 @@ sub said {
my $ev = $? >> 8;
$self->say(@keys, "Could not find commit $rev (git returned $ev)");
}
+ } elsif ($args->{body} =~ /^\%branch\s+(.*)$/) {
+ $self->say(@keys, "Branch $1: " . $self->make_branch_uri($1));
}
}
@@ -227,7 +235,7 @@ sub tick {
$commit->{nins}, $commit->{ndel},
$self->colour(announce => "reset"),
$self->colour(announce => "url"),
- $self->make_web_uri($abbr),
+ $self->make_commit_uri($abbr),
$self->colour(announce => "reset"),
)
);