getsetup-ize svn and bzr

master
Joey Hess 2008-07-26 18:26:39 -04:00
parent 21af3ae336
commit 90b310b93c
3 changed files with 65 additions and 18 deletions

View 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",

View 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 = ();

View 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}) {
# code depends on the path not having extraneous slashes
$IkiWiki::config{svnpath}=~tr#/#/#s;
$IkiWiki::config{svnpath}=~s/\/$//;
$IkiWiki::config{svnpath}=~s/^\///;
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
$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&r1=[[r1]]&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() {