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 committed by Junio C Hamano
parent 0fa920c35c
commit e4e3b32bd2

View File

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