X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fsystem.py;h=6b793397f12e8280bece2dd60d28b37caaadbe4c;hb=d828b7da029994130b3717855155e49d58ee87ea;hp=9d0f28556de2c4b72b98b6f12c3d3cba89d517fd;hpb=2f7093e4aef1e2047b1f600781163f4e6d57f96d;p=tools%2Fsat.git diff --git a/src/system.py b/src/system.py index 9d0f285..6b79339 100644 --- a/src/system.py +++ b/src/system.py @@ -54,6 +54,21 @@ def show_in_editor(editor, filePath, logger): logger.write(printcolors.printcError(_("Unable to edit file %s\n") % filePath), 1) +def git_describe(repo_path): + '''Use git describe --tags command to return tag description of the git repository" + :param repo_path str: The git repository to describe + ''' + git_cmd="cd %s;git describe --tags" % repo_path + p = subprocess.Popen(git_cmd, shell=True, + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + p.wait() + if p.returncode != 0: + return False + else: + return p.stdout.readlines()[0].strip() + def git_extract(from_what, tag, where, logger, environment=None): '''Extracts sources from a git repository. @@ -97,24 +112,23 @@ git --git-dir=%(where_git)s --work-tree=%(where)s checkout %(tag)s DBG.write("cmd", cmd) - for nbtry in range(0,3): # retries case of network problem + # git commands may fail sometimes for various raisons + # (big module, network troubles, tuleap maintenance) + # therefore we give several tries + i_try = 0 + max_number_of_tries = 3 + sleep_delay = 30 # seconds + while (True): + i_try += 1 rc = UTS.Popen(cmd, cwd=str(where.dir()), env=environment.environ.environ, logger=logger) - if rc.isOk(): break - time.sleep(30) # wait a little + if rc.isOk() or (i_try>=max_number_of_tries): + break + logger.write('\ngit command failed! Wait %d seconds and give an other try (%d/%d)\n' % \ + (sleep_delay, i_try + 1, max_number_of_tries), 3) + time.sleep(sleep_delay) # wait a little return rc.isOk() - """ - res = subprocess.call(command, - cwd=str(where.dir()), - env=environment.environ.environ, - shell=True, - stdout=logger.logTxtFile, - stderr=subprocess.STDOUT) - return (res == 0) - """ - - def git_extract_sub_dir(from_what, tag, where, sub_dir, logger, environment=None): '''Extracts sources from a subtree sub_dir of a git repository. @@ -288,4 +302,4 @@ def svn_extract(user, shell=True, stdout=logger.logTxtFile, stderr=subprocess.STDOUT) - return (res == 0) \ No newline at end of file + return (res == 0)