def _CheckWrapperVersion(ver, repo_path): if not repo_path: repo_path = '~/bin/repo' if not ver: print('no --wrapper-version argument', file=sys.stderr) sys.exit(1) exp = Wrapper().VERSION ver = tuple(map(int, ver.split('.'))) if len(ver) == 1: ver = (0, ver[0]) exp_str = '.'.join(map(str, exp)) if exp[0] > ver[0] or ver < (0, 4): print(""" !!! A new repo command (%5s) is available. !!! !!! You must upgrade before you can continue: !!! cp %s %s """ % (exp_str, WrapperPath(), repo_path), file=sys.stderr) sys.exit(1) if exp > ver: print(""" ... A new repo command (%5s) is available. ... You should upgrade soon: cp %s %s """ % (exp_str, WrapperPath(), repo_path), file=sys.stderr)
def _CheckWrapperVersion(ver_str, repo_path): """Verify the repo launcher is new enough for this checkout. Args: ver_str: The version string passed from the repo launcher when it ran us. repo_path: The path to the repo launcher that loaded us. """ # Refuse to work with really old wrapper versions. We don't test these, # so might as well require a somewhat recent sane version. # v1.15 of the repo launcher was released in ~Mar 2012. MIN_REPO_VERSION = (1, 15) min_str = '.'.join(str(x) for x in MIN_REPO_VERSION) if not repo_path: repo_path = '~/bin/repo' if not ver_str: print('no --wrapper-version argument', file=sys.stderr) sys.exit(1) # Pull out the version of the repo launcher we know about to compare. exp = Wrapper().VERSION ver = tuple(map(int, ver_str.split('.'))) exp_str = '.'.join(map(str, exp)) if ver < MIN_REPO_VERSION: print(""" repo: error: !!! Your version of repo %s is too old. !!! We need at least version %s. !!! A new version of repo (%s) is available. !!! You must upgrade before you can continue: cp %s %s """ % (ver_str, min_str, exp_str, WrapperPath(), repo_path), file=sys.stderr) sys.exit(1) if exp > ver: print('\n... A new version of repo (%s) is available.' % (exp_str, ), file=sys.stderr) if os.access(repo_path, os.W_OK): print("""\ ... You should upgrade soon: cp %s %s """ % (WrapperPath(), repo_path), file=sys.stderr) else: print("""\ ... New version is available at: %s ... The launcher is run from: %s !!! The launcher is not writable. Please talk to your sysadmin or distro !!! to get an update installed. """ % (WrapperPath(), repo_path), file=sys.stderr)