gitweb: Modularized git_get_project_description to be more generic

Introduce a git_get_file_or_project_config utility function to
retrieve a repository variable either from a plain text file in the
$GIT_DIR or else from 'gitweb.$variable' in the repository config
(e.g. 'description').

This would be used in next commit to retrieve category for a project,
which is to be stored in the same way as project description.

Signed-off-by: Sebastien Cevey <seb@cine7.net>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Sebastien Cevey 2011-04-29 19:52:00 +02:00 коммит произвёл Junio C Hamano
Родитель 0fa920c35c
Коммит e4e3b32bd2
1 изменённых файлов: 16 добавлений и 8 удалений

Просмотреть файл

@ -2562,18 +2562,26 @@ sub git_get_path_by_hash {
## ......................................................................
## git utility functions, directly accessing git repository
sub git_get_project_description {
my $path = shift;
# get the value of config variable either from file named as the variable
# itself in the repository ($GIT_DIR/$name file), or from gitweb.$name
# configuration variable in the repository config file.
sub git_get_file_or_project_config {
my ($path, $name) = @_;
$git_dir = "$projectroot/$path";
open my $fd, '<', "$git_dir/description"
or return git_get_project_config('description');
my $descr = <$fd>;
open my $fd, '<', "$git_dir/$name"
or return git_get_project_config($name);
my $conf = <$fd>;
close $fd;
if (defined $descr) {
chomp $descr;
if (defined $conf) {
chomp $conf;
}
return $descr;
return $conf;
}
sub git_get_project_description {
my $path = shift;
return git_get_file_or_project_config($path, 'description');
}
# supported formats: