From 77b4397a7376fe52fe0725ed538891c89da161ed Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 19 Feb 2020 17:55:22 -0500 Subject: git_config: add GetInt helper Change-Id: Ic034ae2fd962299d1b352e597b391b6582ecf44b Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/256052 Tested-by: Mike Frysinger Reviewed-by: Jonathan Nieder --- git_config.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'git_config.py') diff --git a/git_config.py b/git_config.py index cee33e92..6b1f7107 100644 --- a/git_config.py +++ b/git_config.py @@ -122,6 +122,43 @@ class GitConfig(object): return self.defaults.Has(name, include_defaults=True) return False + def GetInt(self, name): + """Returns an integer from the configuration file. + + This follows the git config syntax. + + Args: + name: The key to lookup. + + Returns: + None if the value was not defined, or is not a boolean. + Otherwise, the number itself. + """ + v = self.GetString(name) + if v is None: + return None + v = v.strip() + + mult = 1 + if v.endswith('k'): + v = v[:-1] + mult = 1024 + elif v.endswith('m'): + v = v[:-1] + mult = 1024 * 1024 + elif v.endswith('g'): + v = v[:-1] + mult = 1024 * 1024 * 1024 + + base = 10 + if v.startswith('0x'): + base = 16 + + try: + return int(v, base=base) * mult + except ValueError: + return None + def GetBoolean(self, name): """Returns a boolean from the configuration file. None : The value was not defined, or is not a boolean. -- cgit v1.2.3-54-g00ecf