diff options
-rw-r--r-- | www/p5-Kwiki-Notify-Mail/Makefile | 18 | ||||
-rw-r--r-- | www/p5-Kwiki-Notify-Mail/distinfo | 6 | ||||
-rw-r--r-- | www/p5-Kwiki-Notify-Mail/files/patch-aa | 199 |
3 files changed, 10 insertions, 213 deletions
diff --git a/www/p5-Kwiki-Notify-Mail/Makefile b/www/p5-Kwiki-Notify-Mail/Makefile index 2ae5449204e1..57549245cabd 100644 --- a/www/p5-Kwiki-Notify-Mail/Makefile +++ b/www/p5-Kwiki-Notify-Mail/Makefile @@ -6,32 +6,28 @@ # PORTNAME= Kwiki-Notify-Mail -PORTVERSION= 0.03 -PORTREVISION= 2 +PORTVERSION= 0.04 CATEGORIES= www perl5 MASTER_SITES= ${MASTER_SITE_PERL_CPAN} MASTER_SITE_SUBDIR= Kwiki PKGNAMEPREFIX= p5- -MAINTAINER= ports@FreeBSD.org +MAINTAINER= perl@FreeBSD.org COMMENT= Send email notification of topic updates -BUILD_DEPENDS= ${SITE_PERL}/Kwiki.pm:${PORTSDIR}/www/p5-Kwiki -RUN_DEPENDS= ${BUILD_DEPENDS} \ - ${SITE_PERL}/MIME/Lite.pm:${PORTSDIR}/mail/p5-MIME-Lite \ - ${SITE_PERL}/Kwiki/Diff.pm:${PORTSDIR}/www/p5-Kwiki-Diff +RUN_DEPENDS= ${SITE_PERL}/Kwiki.pm:${PORTSDIR}/www/p5-Kwiki \ + ${SITE_PERL}/MIME/Lite.pm:${PORTSDIR}/mail/p5-MIME-Lite +BUILD_DEPENDS= ${RUN_DEPENDS} +BUILD_DEPENDS+= ${SITE_PERL}/Test/More.pm:${PORTSDIR}/devel/p5-Test-Simple PERL_CONFIGURE= yes MAN3= Kwiki::Notify::Mail.3 -post-patch: - ${FIND} ${WRKSRC} -name '*.orig' -print0 | ${XARGS} -0 ${RM} - .include <bsd.port.pre.mk> .if ${PERL_LEVEL} < 500601 -IGNORE= This port requires perl 5.6.x or later. Install lang/perl5 then try again +IGNORE= requires perl 5.6.x or later. Install lang/perl5 then try again .endif post-install: diff --git a/www/p5-Kwiki-Notify-Mail/distinfo b/www/p5-Kwiki-Notify-Mail/distinfo index 49955f1b2cbe..9c0903362ed2 100644 --- a/www/p5-Kwiki-Notify-Mail/distinfo +++ b/www/p5-Kwiki-Notify-Mail/distinfo @@ -1,3 +1,3 @@ -MD5 (Kwiki-Notify-Mail-0.03.tar.gz) = abfcffdbfb3bfe2ea7dc9133964494f9 -SHA256 (Kwiki-Notify-Mail-0.03.tar.gz) = 31529daa51fc9688d122743f4202a4430ff85fd5ee0a43e8fb4c1cdba4125908 -SIZE (Kwiki-Notify-Mail-0.03.tar.gz) = 3940 +MD5 (Kwiki-Notify-Mail-0.04.tar.gz) = 62423894f27d642a6cca4687e78c11cc +SHA256 (Kwiki-Notify-Mail-0.04.tar.gz) = 5a7d8e32035db501a76fa3f0fb8f60c15cb2cf7057dfcce03fa46126c04693a2 +SIZE (Kwiki-Notify-Mail-0.04.tar.gz) = 4958 diff --git a/www/p5-Kwiki-Notify-Mail/files/patch-aa b/www/p5-Kwiki-Notify-Mail/files/patch-aa deleted file mode 100644 index 53facdf690f1..000000000000 --- a/www/p5-Kwiki-Notify-Mail/files/patch-aa +++ /dev/null @@ -1,199 +0,0 @@ ---- lib/Kwiki/Notify/Mail.pm.orig Tue Jan 25 20:49:23 2005 -+++ lib/Kwiki/Notify/Mail.pm Mon Jun 6 11:19:17 2005 -@@ -6,6 +6,7 @@ - use Kwiki::Plugin '-Base'; - use mixin 'Kwiki::Installer'; - use MIME::Lite; -+use CGI; - - our $VERSION = '0.03'; - -@@ -26,26 +27,82 @@ - ); - } - -+sub recipient_list { -+ my $notify_mail_obj = $self->hub->load_class('notify_mail'); -+ my $mail_to = $notify_mail_obj->config->notify_mail_to; -+ my $topic = $notify_mail_obj->config->notify_mail_topic; -+ my $meta_data = $self->hub->edit->pages->current->metadata; -+ my $who = $meta_data->{edit_by}; -+ my $page_name = $meta_data->{id}; -+ my ($cfg, $page, $email); -+ -+ return undef unless defined $mail_to && defined $who && defined $page_name; -+ -+ # Support for a notify_mail_topic configuration entry giving a page from -+ # which notification info can be read. -+ $cfg = $self->hub->pages->new_page($topic); -+ if (defined $cfg) { -+ foreach (split(/\n/, $cfg->content)) { -+ s/#.*//; -+ next if /^\s*$/; -+ unless (($page, $email) = /^([^:]+):\s*(.+)/) { -+ print STDERR "Kwiki::Notify::Mail: Unregognised line in ", -+ $topic, ": ", $_, "\n"; -+ next; -+ } -+ next unless $page_name =~ /^$page$/; -+ $mail_to .= " " . $email; -+ } -+ } -+ -+ return $mail_to; -+} -+ - sub notify { - my $hook = pop; -- my $page = shift; -+ my $page = $self->hub->edit->pages->current; - my $notify_mail_obj = $self->hub->load_class('notify_mail'); -- -- my $meta_data = $self->hub->edit->pages->current->metadata; -+ my $meta_data = $page->metadata; - my $site_title = $self->hub->config->site_title; -- - my $edited_by = $meta_data->{edit_by} || 'unknown name'; - my $page_name = $meta_data->{id} || 'unknown page'; -- my $to = $notify_mail_obj->config->notify_mail_to || 'unknown@unknown'; -+ my $to = $notify_mail_obj->recipient_list(); -+ return $self unless $to; -+ - my $from = $notify_mail_obj->config->notify_mail_from || 'unknown'; - my $subject = sprintf($notify_mail_obj->config->notify_mail_subject, - $site_title, - $page_name, - $edited_by) || 'unknown'; -+ $subject =~ s/\$1/$site_title/g; -+ $subject =~ s/\$2/$page_name/g; -+ $subject =~ s/\$3/$edited_by/g; -+ -+ my $body; -+ -+ my $revs = $self->revision_numbers; -+ if ($#$revs > 0) { -+ $body = "$site_title page $page_name edited by $edited_by\n\n"; -+ -+ $body .= "See " . CGI::url() . "?action=diff&page_name=" . $page_name . -+ "&revision_id=" . $revs->[1] . "\n\n" -+ if $self->hub->have_plugin('diff'); -+ -+ if ($notify_mail_obj->config->notify_mail_inline_diff) { -+ my $oldname = $self->file_path . ".rev-" . $revs->[1]; -+ open (OLD, ">", $oldname); -+ print OLD $self->hub->archive->fetch($page, $revs->[1]); -+ close OLD; -+ $body .= "Diffs are as follows:\n\n"; -+ $body .= io("/usr/bin/diff -u $oldname " . $self->file_path . -+ " |")->utf8->all; -+ unlink $oldname; -+ } -+ } else { -+ $body = "$site_title page $page_name created by $edited_by"; -+ } - -- my $body = "$site_title page $page_name edited by $edited_by\n"; -- -- $notify_mail_obj->mail_it($to,$from,$subject,$body); -+ $notify_mail_obj->mail_it($to,$from,$subject,$body) if $to; - return $self; - } - -@@ -96,9 +153,11 @@ - - =head1 DESCRIPTION - --This module allows you to notify yourself by email when some one --updates a page. You can specify the To:, From: and Subject: headers, --but the email message body is not currently configurable. -+This module allows you to notify people by email when a page is updated. -+You can specify the To:, From: and Subject: headers, and the mail body -+may include unified diffs. Furthermore, if the Kwiki::Diff module is -+installed, a link to an sdiff of the changes is also provided in the -+mail body. - - A sample email looks like: - -@@ -121,7 +180,27 @@ - - =item * notify_mail_to - --Specify the mail address you are sending to. -+Specify the mail address you are sending to. Email will be sent to these -+addresses for all page updates. -+ -+=item * notify_mail_topic -+ -+Specify the mail topic or ConfigPage that is used to decide who to send mail -+to. The ConfigPage is of the format -+ -+ WikiPage: email@domain.com -+ -+WikiPage may be given as a regular expression, and multiple email addresses -+may be given. For example: -+ -+ HomePage: me@my.domain.com -+ .*: bigmailbox@my.domain.com -+ Doc.*: docs@my.domain.com me@my.domain.com -+ -+=item * notify_mail_inline_diff -+ -+Specify whether inline unified diffs should be added to the mail body. The -+default is 1 -- diffs are included. - - =item * notify_mail_from - -@@ -131,9 +210,10 @@ - - Specify a subject line for the mail message. You can make use of - sprintf()-type formatting codes (%s is the only one that is relevant). --If you put or more %s in the configuration directive it will print out --the site title, page name and whom it was edited by. You can can't --change the order, however. -+If you put one or more %s in the configuration directive it will print out -+the site title, page name and whom it was edited by. You may also put -+$1, $2 and/or $3 in the subject line. They will be replaced with the site -+title, the page name and whom it was edited by respectively. - - Examples: - -@@ -168,8 +248,16 @@ - Subject: My wiki ProjectDiscussion page NextWeeksAgenda was updated - by PointyHairedBoss - --The important thing to remember is that you can have either none or one or two --or three %s, but you can't change the order. The default value is -+The important thing to remember is that when using %s, you can't change the -+order of argument substitution. To do that, you need something like this: -+ -+ notify_mail_subject: $3 has updated $2 on $1 -+ -+gives you the Subject: line -+ -+ Subject: PointyHairedBoss has updated NextWeeksAgenda on ProjectDiscussion -+ -+The default value is - - notify_mail_subject: %s wiki page %s updated by %s - -@@ -194,9 +282,6 @@ - - =head1 BUGS - --The subject line configuration relies on sprintf() which doesn't allow --you to change the order of what gets printed out. -- - The debug file is saved to /tmp and should be user configurable. This - module was not tested under Windows and certainly /tmp doesn't exist - there. -@@ -215,7 +300,9 @@ - - =cut - __config/notify_mail.yaml__ --notify_mail_to: nobody@nobody.abc -+notify_mail_to: -+notify_mail_topic: NotifyMail -+notify_mail_inline_diff: 1 - notify_mail_from: nobody - notify_mail_subject: %s wiki page %s updated by %s - notify_mail_debug: 0 |