diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-10-10 17:09:33 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-10-10 17:09:33 -0400 |
commit | 643c0f1afc509923e0be46358511b9d7283de4a6 (patch) | |
tree | f1f21bff954d0d7745ec27dc508ed10bbd44a80e /IkiWiki/Plugin/google.pm | |
parent | f9957d11ed3674b5c2ff7ba7c234bed7cb036b5f (diff) | |
download | ikiwiki-643c0f1afc509923e0be46358511b9d7283de4a6.tar ikiwiki-643c0f1afc509923e0be46358511b9d7283de4a6.tar.gz |
optimise url parsing and add guard against failure to parse
Diffstat (limited to 'IkiWiki/Plugin/google.pm')
-rw-r--r-- | IkiWiki/Plugin/google.pm | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/IkiWiki/Plugin/google.pm b/IkiWiki/Plugin/google.pm index be07ca2be..92b9b29eb 100644 --- a/IkiWiki/Plugin/google.pm +++ b/IkiWiki/Plugin/google.pm @@ -6,6 +6,8 @@ use strict; use IkiWiki 2.00; use URI; +my $host; + sub import { #{{{ hook(type => "getsetup", id => "google", call => \&getsetup); hook(type => "checkconfig", id => "google", call => \&checkconfig); @@ -21,11 +23,14 @@ sub getsetup () { #{{{ } #}}} sub checkconfig () { #{{{ - foreach my $required (qw(url)) { - if (! length $config{$required}) { - error(sprintf(gettext("Must specify %s when using the google search plugin"), $required)); - } + if (! length $config{url}) { + error(sprintf(gettext("Must specify %s when using the google search plugin"), "url")); + } + my $uri=URI->new($config{url}); + if (! $uri || ! defined $uri->host) { + error(gettext("Failed to parse url, cannot determine domain name")); } + $host=$uri->host; } #}}} my $form; @@ -38,7 +43,7 @@ sub pagetemplate (@) { #{{{ if ($template->query(name => "searchform")) { if (! defined $form) { my $searchform = template("googleform.tmpl", blind_cache => 1); - $searchform->param(sitefqdn => URI->new($config{url})->host); + $searchform->param(sitefqdn => $host); $form=$searchform->output; } |