From b5b2766b24ca9cd4ec7b21260ad9e412dd7aa935 Mon Sep 17 00:00:00 2001 From: Henning Schild Date: Fri, 5 Jan 2018 16:00:25 +0100 Subject: [PATCH] repos: also move version control call out of config.py Signed-off-by: Henning Schild --- kas/config.py | 15 +++------------ kas/repos.py | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/kas/config.py b/kas/config.py index b8b3cd3..2ffa8b0 100644 --- a/kas/config.py +++ b/kas/config.py @@ -49,7 +49,7 @@ except ImportError: return platform.dist()[0] from .repos import Repo -from .libkas import run_cmd, repos_fetch +from .libkas import repos_fetch __license__ = 'MIT' __copyright__ = 'Copyright (c) Siemens AG, 2017' @@ -193,17 +193,8 @@ class Config: if url is None: # No git operation on repository if path is None: - # In-tree configuration - path = os.path.dirname(self.filename) - (ret, output) = run_cmd(['git', - 'rev-parse', - '--show-toplevel'], - cwd=path, - env=self.environ, - fail=False, - liveupdate=False) - if ret == 0: - path = output.strip() + path = Repo.get_root_path(os.path.dirname(self.filename), + self.environ) logging.info('Using %s as root for repository %s', path, name) diff --git a/kas/repos.py b/kas/repos.py index 0b5fb53..4e4e3b7 100644 --- a/kas/repos.py +++ b/kas/repos.py @@ -155,3 +155,20 @@ class Repo: run_cmd(['git', 'checkout', '-q', '{refspec}'.format(refspec=self.refspec)], cwd=self.path) + + @staticmethod + def get_root_path(path, environ): + """ + Check if path is a version control repo and return its root path. + """ + (ret, output) = run_cmd(['git', + 'rev-parse', + '--show-toplevel'], + cwd=path, + env=environ, + fail=False, + liveupdate=False) + if ret == 0: + return output.strip() + + return path