Add support for repo configurations
Git repository configurations can be set/unset by declaring "config" lines in "repo" stanzas in gitolite.conf. For example: repo gitolite config hooks.mailinglist = gitolite-commits@example.tld config hooks.emailprefix = "[gitolite] " config foo.bar = "" config foo.baz = The firs two set (override) the values. Double quotes must be used to preserve preceding spaces. Third one sets an empty value and the last removes all keys. Signed-off-by: Teemu Matilainen <teemu.matilainen@reaktor.fi>
This commit is contained in:
parent
38255e4096
commit
3403d40d0e
|
@ -101,6 +101,9 @@ my %rurp_seen = ();
|
||||||
# catch usernames<->pubkeys mismatches; search for "lint" below
|
# catch usernames<->pubkeys mismatches; search for "lint" below
|
||||||
my %user_list = ();
|
my %user_list = ();
|
||||||
|
|
||||||
|
# repo configurations
|
||||||
|
my %repo_config = ();
|
||||||
|
|
||||||
# gitweb descriptions and owners; plain text, keyed by "$repo.git"
|
# gitweb descriptions and owners; plain text, keyed by "$repo.git"
|
||||||
my %desc = ();
|
my %desc = ();
|
||||||
my %owner = ();
|
my %owner = ();
|
||||||
|
@ -244,6 +247,16 @@ sub parse_conf_file
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
# configuration
|
||||||
|
elsif (/^config (.+) = ?(.*)/)
|
||||||
|
{
|
||||||
|
my ($key, $value) = ($1, $2);
|
||||||
|
die "$WARN $fragment attempting to set repo configuration\n" if $fragment ne 'master';
|
||||||
|
for my $repo (@repos) # each repo in the current stanza
|
||||||
|
{
|
||||||
|
$repo_config{$repo}{$key} = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
# very simple syntax for the gitweb description of repo; one of:
|
# very simple syntax for the gitweb description of repo; one of:
|
||||||
# reponame = "some description string"
|
# reponame = "some description string"
|
||||||
# reponame "owner name" = "some description string"
|
# reponame "owner name" = "some description string"
|
||||||
|
@ -338,6 +351,22 @@ warn "\n\t\t***** WARNING *****\n" .
|
||||||
"\t\"git version dependency\" in doc/3-faq-tips-etc.mkd\n"
|
"\t\"git version dependency\" in doc/3-faq-tips-etc.mkd\n"
|
||||||
if $git_version < 10602; # that's 1.6.2 to you
|
if $git_version < 10602; # that's 1.6.2 to you
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# update repo configurations
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
for my $repo (keys %repo_config) {
|
||||||
|
wrap_chdir("$repo_base_abs/$repo.git");
|
||||||
|
while ( my ($key, $value) = each(%{ $repo_config{$repo} }) ) {
|
||||||
|
if ($value) {
|
||||||
|
$value =~ s/^"(.*)"$/$1/;
|
||||||
|
system("git", "config", $key, $value);
|
||||||
|
} else {
|
||||||
|
system("git", "config", "--unset-all", $key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# handle gitweb and daemon
|
# handle gitweb and daemon
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in a new issue