load rpc xml lib on the fly
authorJoey Hess <joey@gnu.kitenet.net>
Sat, 17 Jan 2009 19:56:48 +0000 (14:56 -0500)
committerJoey Hess <joey@gnu.kitenet.net>
Sat, 17 Jan 2009 19:56:48 +0000 (14:56 -0500)
This way, enabling the plugin via websetup is safe, it can't leave
ikiwiki in a broken state.

IkiWiki/Plugin/blogspam.pm
t/syntax.t

index 6e68a98567bb222fbceb2999ad903bf43c35de7d..4005e9f2a149aa534b2c7596ed5b9512f524a63d 100644 (file)
@@ -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
index 9d5cbc3739d168b9362cbfb91620a9f624e3a918..d09d17f7f932deecb9c6f16e6911367ced9d4d35 100755 (executable)
@@ -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));