From: Joey Hess Date: Sat, 17 Jan 2009 19:56:48 +0000 (-0500) Subject: load rpc xml lib on the fly X-Git-Tag: 3.02~2 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=cd2ddb57a5a20e308cee912e26f2383733c11b3c;p=ikiwiki.git load rpc xml lib on the fly This way, enabling the plugin via websetup is safe, it can't leave ikiwiki in a broken state. --- diff --git a/IkiWiki/Plugin/blogspam.pm b/IkiWiki/Plugin/blogspam.pm index 6e68a9856..4005e9f2a 100644 --- a/IkiWiki/Plugin/blogspam.pm +++ b/IkiWiki/Plugin/blogspam.pm @@ -4,8 +4,6 @@ package IkiWiki::Plugin::blogspam; use warnings; use strict; use IkiWiki 3.00; -require RPC::XML; -require RPC::XML::Client; my $defaulturl='http://test.blogspam.net:8888/'; @@ -47,6 +45,15 @@ sub getsetup () { sub checkcontent (@) { my %params=@_; + + eval q{ + use RPC::XML; + use RPC::XML::Client; + }; + if ($@) { + warn($@); + return undef; + } if (exists $config{blogspam_pagespec}) { return undef diff --git a/t/syntax.t b/t/syntax.t index 9d5cbc373..d09d17f7f 100755 --- a/t/syntax.t +++ b/t/syntax.t @@ -5,8 +5,8 @@ use Test::More; my @progs="ikiwiki.in"; my @libs="IkiWiki.pm"; -# monotone, external, blogspam, amazon_s3 skipped since they need perl modules -push @libs, map { chomp; $_ } `find IkiWiki -type f -name \\*.pm | grep -v monotone.pm | grep -v external.pm | grep -v blogspam.pm | grep -v amazon_s3.pm`; +# monotone, external, amazon_s3 skipped since they need perl modules +push @libs, map { chomp; $_ } `find IkiWiki -type f -name \\*.pm | grep -v monotone.pm | grep -v external.pm | grep -v amazon_s3.pm`; push @libs, 'IkiWiki/Plugin/skeleton.pm.example'; plan(tests => (@progs + @libs));