diff options
author | Jakub Narebski <jnareb@gmail.com> | 2007-11-23 19:04:52 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-11-30 13:52:36 -0800 |
commit | 346d203bc3931c33f2e40093ee9325ab0334b9fe (patch) | |
tree | 9721a6cd53ddbfff6dcb078542d4ffa5075bd01b /perl/Git.pm | |
parent | d6617c7cdebc20fe007e983f70b44a223dd52c28 (diff) | |
download | git-346d203bc3931c33f2e40093ee9325ab0334b9fe.tar.gz git-346d203bc3931c33f2e40093ee9325ab0334b9fe.tar.xz |
Add config_int() method to the Git perl module
Integer variables can have optional 'k', 'm' or 'g' suffix.
config_int() method will return simple decimal number, taking
care of those suffixes.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'perl/Git.pm')
-rw-r--r-- | perl/Git.pm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/perl/Git.pm b/perl/Git.pm index dca92c8ad..7468460f9 100644 --- a/perl/Git.pm +++ b/perl/Git.pm @@ -549,6 +549,37 @@ sub config_bool { }; } +=item config_int ( VARIABLE ) + +Retrieve the integer configuration C<VARIABLE>. The return value +is simple decimal number. An optional value suffix of 'k', 'm', +or 'g' in the config file will cause the value to be multiplied +by 1024, 1048576 (1024^2), or 1073741824 (1024^3) prior to output. +It would return C<undef> if configuration variable is not defined, + +Must be called on a repository instance. + +This currently wraps command('config') so it is not so fast. + +=cut + +sub config_int { + my ($self, $var) = @_; + $self->repo_path() + or throw Error::Simple("not a repository"); + + try { + return $self->command_oneline('config', '--int', '--get', $var); + } catch Git::Error::Command with { + my $E = shift; + if ($E->value() == 1) { + # Key not found. + return undef; + } else { + throw $E; + } + }; +} =item ident ( TYPE | IDENTSTR ) |