summaryrefslogtreecommitdiff
path: root/IkiWiki.pm
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-03-21 09:37:52 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-03-21 09:37:52 -0400
commit3479809f96fa9c7a5d9f86c18c581f9a343a3aef (patch)
tree5cd766b83daea323ceae564ca9e1e7384536dbc8 /IkiWiki.pm
parent213eb2e408f471d44da5bcdde3782f94ca3faeae (diff)
add transition code for indexdb
Diffstat (limited to 'IkiWiki.pm')
-rw-r--r--IkiWiki.pm17
1 files changed, 13 insertions, 4 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index e7422cba5..db16a0854 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -899,7 +899,16 @@ sub loadindex () { #{{{
%pagesources=%pagemtime=%oldlinks=%links=%depends=
%destsources=%renderedfiles=%pagecase=%pagestate=();
}
- open (my $in, "<", "$config{wikistatedir}/index") || return;
+ my $in;
+ if (! open ($in, "<", "$config{wikistatedir}/indexdb")) {
+ if (-e "$config{wikistatedir}/index") {
+ system("ikiwiki-transition", "indexdb", $config{wikistatedir});
+ open ($in, "<", "$config{wikistatedir}/indexdb") || return;
+ }
+ else {
+ return;
+ }
+ }
my $ret=Storable::fd_retrieve($in);
if (! defined $ret) {
return 0;
@@ -946,7 +955,7 @@ sub saveindex () { #{{{
if (! -d $config{wikistatedir}) {
mkdir($config{wikistatedir});
}
- my $newfile="$config{wikistatedir}/index.new";
+ my $newfile="$config{wikistatedir}/indexdb.new";
my $cleanup = sub { unlink($newfile) };
open (my $out, '>', $newfile) || error("cannot write to $newfile: $!", $cleanup);
my %index;
@@ -976,8 +985,8 @@ sub saveindex () { #{{{
my $ret=Storable::nstore_fd(\%index, $out);
return if ! defined $ret || ! $ret;
close $out || error("failed saving to $newfile: $!", $cleanup);
- rename($newfile, "$config{wikistatedir}/index") ||
- error("failed renaming $newfile to $config{wikistatedir}/index", $cleanup);
+ rename($newfile, "$config{wikistatedir}/indexdb") ||
+ error("failed renaming $newfile to $config{wikistatedir}/indexdb", $cleanup);
return 1;
} #}}}