diff options
-rw-r--r-- | IkiWiki/Rcs/git.pm | 34 | ||||
-rw-r--r-- | IkiWiki/Setup/Standard.pm | 9 |
2 files changed, 42 insertions, 1 deletions
diff --git a/IkiWiki/Rcs/git.pm b/IkiWiki/Rcs/git.pm index ecf560d0b..7c3ae9276 100644 --- a/IkiWiki/Rcs/git.pm +++ b/IkiWiki/Rcs/git.pm @@ -11,6 +11,40 @@ use open qw{:utf8 :std}; my $sha1_pattern = qr/[0-9a-fA-F]{40}/; # pattern to validate Git sha1sums my $dummy_commit_msg = 'dummy commit'; # message to skip in recent changes +hook(type => "getsetup", id => "git", call => sub { #{{{ + return + historyurl => { + type => "string", + default => "", + example => "http://git.example.com/gitweb.cgi?p=wiki.git;a=history;f=[[file]]", + description => "gitweb url to show file history ([[file]] substituted)", + safe => 1, + rebuild => 1, + }, + diffurl => { + type => "string", + default => "", + example => "http://git.example.com/gitweb.cgi?p=wiki.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=[[file]]", + description => "gitweb url to show a diff ([[sha1_to]], [[sha1_from]], [[sha1_parent]], and [[file]] substituted)", + safe => 1, + rebuild => 1, + }, + gitorigin_branch => { + type => "string", + default => "origin", + description => "where to pull and push changes (unset to not pull/push)", + safe => 0, # paranoia + rebuild => 0, + }, + gitmaster_branch => { + type => "string", + default => "master", + description => "branch that the wiki is stored in", + safe => 0, # paranoia + rebuild => 0, + }, +}); #}}} + sub _safe_git (&@) { #{{{ # Start a child process safely without resorting /bin/sh. # Return command output or success state (in scalar context). diff --git a/IkiWiki/Setup/Standard.pm b/IkiWiki/Setup/Standard.pm index 54819ae75..b8ad09144 100644 --- a/IkiWiki/Setup/Standard.pm +++ b/IkiWiki/Setup/Standard.pm @@ -80,11 +80,18 @@ sub gendump ($) { #{{{ push @ret, dumpvalues(\%setup, IkiWiki::getsetup()); push @ret, ""; + # sort rcs plugin first + my @plugins=sort { + ($a eq $config{rcs}) <=> ($b eq $config{rcs}) + || + $a cmp $b + } keys %{$IkiWiki::hooks{getsetup}}; + foreach my $id (sort keys %{$IkiWiki::hooks{getsetup}}) { # use an array rather than a hash, to preserve order my @s=$IkiWiki::hooks{getsetup}{$id}{call}->(); return unless @s; - push @ret, "\t# $id plugin"; + push @ret, "\t# $id".($id ne $config{rcs} ? " plugin" : ""); push @ret, dumpvalues(\%setup, @s); push @ret, ""; } |