add rebuild after calling setup, better format for setup files
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Mon, 13 Mar 2006 19:10:29 +0000 (19:10 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Mon, 13 Mar 2006 19:10:29 +0000 (19:10 +0000)
doc/usage.mdwn
doc/wikilink.mdwn
ikiwiki
ikiwiki.setup

index 8efb9a63d5d01244172a22248430969039bc54d1..0377014fd431d0344999775715569049b49a5173 100644 (file)
@@ -89,8 +89,13 @@ flags such as --verbose can be negated with --no-verbose.
 
   In setup mode, ikiwiki reads the config file, which is really a perl
   program that can call ikiwiki internal functions. Uses of this are
 
   In setup mode, ikiwiki reads the config file, which is really a perl
   program that can call ikiwiki internal functions. Uses of this are
-  various; one is to automatically generate wrappers for a wiki based on
-  data in a config file.
+  various; the normal one is to automatically generate wrappers for a
+  wiki based on data in a config file.
+  
+  Note that the wiki will be (re)built as part of the setup process to
+  ensure that any changes take effect.
+
+  [[ikiwiki.setup]] is an example of such a config file.
 
 # AUTHOR
 
 
 # AUTHOR
 
index dab5d3ac4c0fdc849cefec715dcf628a9c71651f..ac0ec9d564d84ba0e4688f9ff2fd54cdf351b202 100644 (file)
@@ -11,4 +11,5 @@ play when linking between [[SubPage]]s.
 WikiLinks can be entered in any case you like, the page they link to is
 always lowercased.
 
 WikiLinks can be entered in any case you like, the page they link to is
 always lowercased.
 
-Note that if the file linked to by a WikiLink looks like an image, it will be displayed inline on the page.
+Note that if the file linked to by a WikiLink looks like an image, it will
+be displayed inline on the page.
diff --git a/ikiwiki b/ikiwiki
index 111ef54fce0a5c19d3f1ec68da9f2894269eadaf..ea3833a37d5e98f062db2d5cdc410962a29a9330 100755 (executable)
--- a/ikiwiki
+++ b/ikiwiki
@@ -1152,6 +1152,7 @@ sub cgi () { #{{{
 
 sub setup () { # {{{
        my $setup=possibly_foolish_untaint($config{setup});
 
 sub setup () { # {{{
        my $setup=possibly_foolish_untaint($config{setup});
+       delete $config{setup};
        open (IN, $setup) || error("read $setup: $!\n");
        local $/=undef;
        my $code=<IN>;
        open (IN, $setup) || error("read $setup: $!\n");
        local $/=undef;
        my $code=<IN>;
@@ -1159,7 +1160,15 @@ sub setup () { # {{{
        close IN;
        eval $code;
        error($@) if $@;
        close IN;
        eval $code;
        error($@) if $@;
-       print "ikiwiki setup complete\n";
+       print "$config{wikiname} setup complete, now forcing a rebuild.\n";
+       $config{cgi}=0;
+       $config{rebuild}=1;
+       foreach my $c (keys %config) {
+               $config{$c}=possibly_foolish_untaint($config{$c})
+                       if defined $config{$c};
+       }
+       refresh();
+       saveindex();
        exit;
 } #}}}
 
        exit;
 } #}}}
 
index 44c4f3106467b6c497e2b6326838cd1033196608..5a902a23cd1c6f0757b3c47d342230c797aebeee 100644 (file)
@@ -5,7 +5,8 @@
 #
 # Remember to re-run ikiwiki --setup any time you edit this file.
 
 #
 # Remember to re-run ikiwiki --setup any time you edit this file.
 
-my %common=(
+%config=(%config,
+       
        wikiname => "MyWiki",
 
        # Be sure to customise these..
        wikiname => "MyWiki",
 
        # Be sure to customise these..
@@ -14,7 +15,7 @@ my %common=(
        destdir => "/var/www/wiki",
        url => "http://myhost/wiki",
        cgiurl => "http://myhost/ikiwiki.cgi",
        destdir => "/var/www/wiki",
        url => "http://myhost/wiki",
        cgiurl => "http://myhost/ikiwiki.cgi",
-       historyurl => "$webdir/cgi-bin/viewcvs?[[]]"
+       #historyurl => "http://svn.myhost/trunk/[[]]",
        
        # Whether to integrate with svn.
        svn => 1,
        
        # Whether to integrate with svn.
        svn => 1,
@@ -22,18 +23,21 @@ my %common=(
        
        # Can anonymous web users edit pages?
        #anonok => 1,
        
        # Can anonymous web users edit pages?
        #anonok => 1,
+
 );     
 
 );     
 
-gen_wrapper(
-       %common,
+gen_wrapper(%config,
+       
        cgi => 1,
        cgi => 1,
-       wrapper => "$common{destdir}/ikiwiki.cgi",
+       wrapper => "$config{destdir}/ikiwiki.cgi",
        wrappermode => 06755,
        wrappermode => 06755,
+       
 );
 );
-gen_wrapper(
-       %common,
+gen_wrapper(%config,
+       
        # Note that this will overwrite any exsting post-commit hoo
        # script, which may not be what you want.
        # Note that this will overwrite any exsting post-commit hoo
        # script, which may not be what you want.
-       wrapper => "$common{svnrepo}/hooks/post-commit",
+       wrapper => "$config{svnrepo}/hooks/post-commit",
        wrappermode => 04755,
        wrappermode => 04755,
-) if $common{$svn};
+
+) if $config{$svn};