From: Joey Hess <joey@kodama.kitenet.net>
Date: Tue, 29 Jul 2008 19:51:25 +0000 (-0400)
Subject: check generated pages in
X-Git-Tag: 2.56~43
X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=f0090d8c5781682eb0e4a59cb92438c0b7baafa1;p=ikiwiki.git

check generated pages in

I considered not checking them in, or making the checkin configurable.
However, then they would remain not checked in if edited by a user, which is
probably not desired.

Note that passing undef as the username/ip to rcs_commit_staged may not
result in ideal behavior; the commit may seem to come from "anonymous" with
some revision control systems. Most of them handle it a bit better and just
have it come from whatever user is running the build.
---

diff --git a/IkiWiki/Plugin/autoindex.pm b/IkiWiki/Plugin/autoindex.pm
index 0a8d90701..8179ee1e7 100644
--- a/IkiWiki/Plugin/autoindex.pm
+++ b/IkiWiki/Plugin/autoindex.pm
@@ -16,6 +16,9 @@ sub genindex ($) { #{{{
 	my $template=template("autoindex.tmpl");
 	$template->param(page => $page);
 	writefile($file, $config{srcdir}, $template->output);
+	if ($config{rcs}) {
+		IkiWiki::rcs_add($file);
+	}
 } #}}}
 
 sub refresh () { #{{{
@@ -45,9 +48,23 @@ sub refresh () { #{{{
 		}
 	}, $config{srcdir});
 
+	my @needed;
 	foreach my $dir (keys %dirs) {
 		if (! exists $pages{$dir}) {
-			genindex($dir);
+			push @needed, $dir;
+		}
+	}
+	
+	if (@needed) {
+		if ($config{rcs}) {
+			IkiWiki::disable_commit_hook();
+		}
+		genindex($_) foreach @needed;
+		if ($config{rcs}) {
+			IkiWiki::rcs_commit_staged(
+				gettext("automatic index generation"),
+				undef, undef);
+			IkiWiki::enable_commit_hook();
 		}
 	}
 } #}}}