From a27a1681b814ebea6bfdfa4e980bda2926478ee7 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sun, 18 Jul 2010 15:51:53 +0200 Subject: [PATCH] release.pm: Added release notifiers --- maint/release.pm | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/maint/release.pm b/maint/release.pm index cc84bbe..cad091e 100644 --- a/maint/release.pm +++ b/maint/release.pm @@ -30,6 +30,8 @@ sub new($$) { "archivedir" => "/home/mj/tmp/archives/$basename", "uploads" => [ ], + "notifiers" => [ + ], # Options "do_test" => 1, "do_patch" => 1, @@ -37,6 +39,7 @@ sub new($$) { "do_upload" => 1, "do_git_tag" => 0, "force_git_tag" => 0, + "do_notify" => 0, }; bless $s; return $s; @@ -231,9 +234,10 @@ Options: --[no]upload Upload released files {do_upload} --[no]git-tag Tag the Git repository with "v" {do_git_tag} --force-git-tag Rewrite the Git tag if it already exists {force_git_tag} +--[no]notify Call scripts to notify the world about the release {do_notify} FOE sub state($) { - return "(default: " . ($_ ? "on" : "off") . ")"; + return "(default: " . ($_[0] ? "on" : "off") . ")"; } $usage =~ s[{(\w+)}][state($s->{$1})]ge; die $usage; @@ -242,6 +246,7 @@ FOE sub ParseOptions($) { my ($s) = @_; $s->{"do_git_tag"} = 1 if (-d ".git"); + $s->{"do_notify"} = 1 if @{$s->{"notifiers"}}; GetOptions( "verbose!" => \$verbose, "test!" => \$s->{"do_test"}, @@ -250,6 +255,7 @@ sub ParseOptions($) { "upload!" => \$s->{"do_upload"}, 'git-tag!' => \$s->{"do_git_tag"}, 'force-git-tag!' => \$s->{"force_git_tag"}, + 'notify!' => \$s->{"do_notify"}, ) || $s->Usage; } @@ -343,12 +349,28 @@ sub GitTag($) { `git push --tags`; die if $?; } +sub AddUcwNotifier($) { + my ($r) = @_; + push @{$r->{"notifiers"}}, sub { + my ($s) = @_; + print "Updating web pages\n"; + my $pkg = $s->{'PACKAGE'}; + my $ver = $s->{'VERSION'}; + `ssh jw 'cd www && bin/release-prog $pkg $ver'`; die if $?; + }; +}; + sub Dispatch($) { my ($s) = @_; $s->Test if $s->{"do_test"}; $s->MakePatch if $s->{"do_patch"}; $s->GitTag if $s->{"do_git_tag"}; $s->Upload if $s->{"do_upload"}; + if ($s->{"do_notify"}) { + for my $f (@{$s->{"notifiers"}}) { + &$f($s); + } + } } 1; -- 2.39.2