getsetup-ize svn and bzr
authorJoey Hess <joey@kodama.kitenet.net>
Sat, 26 Jul 2008 22:26:39 +0000 (18:26 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Sat, 26 Jul 2008 22:26:56 +0000 (18:26 -0400)
IkiWiki.pm
IkiWiki/Rcs/bzr.pm
IkiWiki/Rcs/svn.pm

index edbec77d62ed55f977f97c6f8b476d06c65c6676..76f1292fcde39abc85a1fca3a3a5af7c0b56d3c5 100644 (file)
@@ -120,14 +120,6 @@ sub getsetup () { #{{{
                safe => 1,
                rebuild => 1,
        },
-       svnpath => {
-               # TODO move
-               type => "string",
-               default => "trunk",
-               description => "path inside svn repo where wiki is located",
-               safe => 0, # could expose/overwrite data
-               rebuild => 0,
-       },
        gitorigin_branch => {
                type => "string",
                default => "origin",
index c80356159f6d97080063da5964bdb904f114e1e2..30fa4482ea9667413b0cf3663611af5d8166a3c9 100644 (file)
@@ -8,6 +8,26 @@ use IkiWiki;
 use Encode;
 use open qw{:utf8 :std};
 
+hook(type => "getsetup", id => "bzr", call => sub { #{{{
+       return
+               historyurl => {
+                       type => "string",
+                       default => "",
+                       #example => "", # FIXME add example
+                       description => "url to show file history, using loggerhead ([[file]] substituted)",
+                       safe => 1,
+                       rebuild => 1,
+               },
+               diffurl => {
+                       type => "string",
+                       default => "",
+                       example => "http://example.com/revision?start_revid=[[r2]]#[[file]]-s",
+                       description => "url to view a diff, using loggerhead ([[file]] and [[r2]] substituted)",
+                       safe => 1,
+                       rebuild => 1,
+               },
+}); #}}}
+
 sub bzr_log ($) { #{{{
        my $out = shift;
        my @infos = ();
index 9081c39027b0d21e3cfb15b4e3716c7f1b0fcc3d..9b8d4be13da881f193621a510c9f32ac3e6d355f 100644 (file)
@@ -1,23 +1,58 @@
 #!/usr/bin/perl
 
-package IkiWiki::Rcs::svn;
+package IkiWiki;
 
 use warnings;
 use strict;
 use IkiWiki;
 use POSIX qw(setlocale LC_CTYPE);
 
-sub import { #{{{
-       if (exists $IkiWiki::config{svnpath}) {
+hook(type => "checkconfig", id => "svn", call => sub { #{{{
+       if (! defined $config{svnpath}) {
+               $config{svnpath}="trunk";
+       }
+       if (exists $config{svnpath}) {
                # code depends on the path not having extraneous slashes
-               $IkiWiki::config{svnpath}=~tr#/#/#s;
-               $IkiWiki::config{svnpath}=~s/\/$//;
-               $IkiWiki::config{svnpath}=~s/^\///;
+               $config{svnpath}=~tr#/#/#s;
+               $config{svnpath}=~s/\/$//;
+               $config{svnpath}=~s/^\///;
        }
-} #}}}
-
-
-package IkiWiki;
+}); #}}}
+
+hook(type => "getsetup", id => "svn", call => sub { #{{{
+       return
+               svnrepo => {
+                       type => "string",
+                       default => "",
+                       example => "/svn/wiki",
+                       description => "subversion repository location",
+                       safe => 0, # path
+                       rebuild => 0,
+               },
+               svnpath => {
+                       type => "string",
+                       default => "trunk",
+                       description => "path inside repository where the wiki is located",
+                       safe => 0, # paranoia
+                       rebuild => 0,
+               },
+               historyurl => {
+                       type => "string",
+                       default => "",
+                       example => "http://svn.example.org/trunk/[[file]]",
+                       description => "viewvc url to show file history ([[file]] substituted)",
+                       safe => 1,
+                       rebuild => 1,
+               },
+               diffurl => {
+                       type => "string",
+                       default => "",
+                       example => "http://svn.example.org/trunk/[[file]]?root=wiki&amp;r1=[[r1]]&amp;r2=[[r2]]",
+                       description => "viewvc url to show a diff ([[file]], [[r1]], and [[r2]] substituted)",
+                       safe => 1,
+                       rebuild => 1,
+               },
+}); #}}}
 
 # svn needs LC_CTYPE set to a UTF-8 locale, so try to find one. Any will do.
 sub find_lc_ctype() {