add support for mass dependencies
Registered by passing "" as page name to add_depends.master
parent
0d8fc55d33
commit
ca9c6cc254
|
@ -13,8 +13,8 @@ use open qw{:utf8 :std};
|
||||||
|
|
||||||
use vars qw{%config %links %oldlinks %pagemtime %pagectime %pagecase
|
use vars qw{%config %links %oldlinks %pagemtime %pagectime %pagecase
|
||||||
%pagestate %wikistate %renderedfiles %oldrenderedfiles
|
%pagestate %wikistate %renderedfiles %oldrenderedfiles
|
||||||
%pagesources %destsources %depends %depends_simple %hooks
|
%pagesources %destsources %depends %depends_simple @mass_depends
|
||||||
%forcerebuild %loaded_plugins %typedlinks %oldtypedlinks
|
%hooks %forcerebuild %loaded_plugins %typedlinks %oldtypedlinks
|
||||||
%autofiles};
|
%autofiles};
|
||||||
|
|
||||||
use Exporter q{import};
|
use Exporter q{import};
|
||||||
|
|
|
@ -25,6 +25,10 @@ sub checkconfig () {
|
||||||
if (! length $config{url}) {
|
if (! length $config{url}) {
|
||||||
error(sprintf(gettext("Must specify %s when using the %s plugin"), "url", 'google'));
|
error(sprintf(gettext("Must specify %s when using the %s plugin"), "url", 'google'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# This is a mass dependency, so if the search form template
|
||||||
|
# changes, every page is rebuilt.
|
||||||
|
add_depends("", "googleform.tmpl");
|
||||||
}
|
}
|
||||||
|
|
||||||
my $form;
|
my $form;
|
||||||
|
@ -36,7 +40,7 @@ sub pagetemplate (@) {
|
||||||
# Add search box to page header.
|
# Add search box to page header.
|
||||||
if ($template->query(name => "searchform")) {
|
if ($template->query(name => "searchform")) {
|
||||||
if (! defined $form) {
|
if (! defined $form) {
|
||||||
my $searchform = template_depends("googleform.tmpl", $page, blind_cache => 1);
|
my $searchform = template("googleform.tmpl", blind_cache => 1);
|
||||||
$searchform->param(url => $config{url});
|
$searchform->param(url => $config{url});
|
||||||
$form=$searchform->output;
|
$form=$searchform->output;
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,10 @@ sub checkconfig () {
|
||||||
if (! defined $config{omega_cgi}) {
|
if (! defined $config{omega_cgi}) {
|
||||||
$config{omega_cgi}="/usr/lib/cgi-bin/omega/omega";
|
$config{omega_cgi}="/usr/lib/cgi-bin/omega/omega";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# This is a mass dependency, so if the search form template
|
||||||
|
# changes, every page is rebuilt.
|
||||||
|
add_depends("", "searchform.tmpl");
|
||||||
}
|
}
|
||||||
|
|
||||||
my $form;
|
my $form;
|
||||||
|
@ -52,7 +56,7 @@ sub pagetemplate (@) {
|
||||||
# Add search box to page header.
|
# Add search box to page header.
|
||||||
if ($template->query(name => "searchform")) {
|
if ($template->query(name => "searchform")) {
|
||||||
if (! defined $form) {
|
if (! defined $form) {
|
||||||
my $searchform = template_depends("searchform.tmpl", $page, blind_cache => 1);
|
my $searchform = template("searchform.tmpl", blind_cache => 1);
|
||||||
$searchform->param(searchaction => $config{cgiurl});
|
$searchform->param(searchaction => $config{cgiurl});
|
||||||
$form=$searchform->output;
|
$form=$searchform->output;
|
||||||
}
|
}
|
||||||
|
|
|
@ -592,12 +592,17 @@ sub render_dependent ($$$$$$$) {
|
||||||
my %lc_changed = map { lc(pagename($_)) => 1 } @changed;
|
my %lc_changed = map { lc(pagename($_)) => 1 } @changed;
|
||||||
my %lc_exists_changed = map { lc(pagename($_)) => 1 } @exists_changed;
|
my %lc_exists_changed = map { lc(pagename($_)) => 1 } @exists_changed;
|
||||||
|
|
||||||
|
my $mass_reason;
|
||||||
|
foreach my $p ("page.tmpl", keys %{$depends_simple{""}}) {
|
||||||
|
$mass_reason=$p if $rendered{$p};
|
||||||
|
}
|
||||||
|
|
||||||
foreach my $f (@$files) {
|
foreach my $f (@$files) {
|
||||||
next if $rendered{$f};
|
next if $rendered{$f};
|
||||||
my $p=pagename($f);
|
my $p=pagename($f);
|
||||||
my $reason = undef;
|
my $reason = $mass_reason;
|
||||||
|
|
||||||
if (exists $depends_simple{$p}) {
|
if (exists $depends_simple{$p} && ! defined $reason) {
|
||||||
foreach my $d (keys %{$depends_simple{$p}}) {
|
foreach my $d (keys %{$depends_simple{$p}}) {
|
||||||
if (($depends_simple{$p}{$d} & $IkiWiki::DEPEND_CONTENT &&
|
if (($depends_simple{$p}{$d} & $IkiWiki::DEPEND_CONTENT &&
|
||||||
$lc_changed{$d})
|
$lc_changed{$d})
|
||||||
|
@ -771,13 +776,7 @@ sub refresh () {
|
||||||
render_linkers($file);
|
render_linkers($file);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($rendered{"templates/page.tmpl"}) {
|
if (@$changed || @$internal_changed ||
|
||||||
foreach my $f (@$files) {
|
|
||||||
next if $f eq "templates/page.tmpl";
|
|
||||||
render($f, sprintf(gettext("building %s, which depends on %s"), $f, "templates/page.tmpl"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elsif (@$changed || @$internal_changed ||
|
|
||||||
@$del || @$internal_del || @$internal_new) {
|
@$del || @$internal_del || @$internal_new) {
|
||||||
1 while render_dependent($files, $new, $internal_new,
|
1 while render_dependent($files, $new, $internal_new,
|
||||||
$del, $internal_del, $internal_changed,
|
$del, $internal_del, $internal_changed,
|
||||||
|
|
Loading…
Reference in New Issue