From 24532f29b6d215211a6d77ca867a08def3bec4ad Mon Sep 17 00:00:00 2001 From: Andras Becsi Date: Wed, 2 Jul 2014 11:19:54 +0200 Subject: tools: move upstream repo utility functions to version_resolver.py This makes it possible to use them in other scripts as well. Change-Id: I8aa76c1a9be91c56fd232a592ac41de5079eb3c7 Reviewed-by: Michael Bruning --- tools/scripts/patch_upstream.py | 57 +++++---------------------------------- tools/scripts/version_resolver.py | 54 +++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 50 deletions(-) (limited to 'tools/scripts') diff --git a/tools/scripts/patch_upstream.py b/tools/scripts/patch_upstream.py index e347d0e21..081a24523 100755 --- a/tools/scripts/patch_upstream.py +++ b/tools/scripts/patch_upstream.py @@ -49,69 +49,26 @@ import subprocess import sys qtwebengine_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) -snapshot_src_dir = os.path.abspath(os.path.join(qtwebengine_root, 'src/3rdparty')) -upstream_src_dir = os.path.abspath(snapshot_src_dir + '_upstream') - sys.path.append(os.path.join(qtwebengine_root, 'tools', 'scripts')) -import version_resolver as resolver - -def preparePatchesFromSnapshot(): - oldCwd = os.getcwd() - base_sha1 = findSnapshotBaselineSha1() - if not base_sha1: - sys.exit('-- base sha1 not found in ' + os.getcwd() + ' --') - - patches_dir = os.path.join(upstream_src_dir, 'patches') - if os.path.isdir(patches_dir): - shutil.rmtree(patches_dir) - os.mkdir(patches_dir) - - os.chdir(snapshot_src_dir) - subprocess.call(['git', 'format-patch', '-o', patches_dir, base_sha1]) - os.chdir(patches_dir) - patches = glob.glob('00*.patch') - - # We'll collect the patches for submodules in corresponding lists - patches_dict = {} - for patch in patches: - patch_path = os.path.abspath(patch) - with open(patch, 'r') as pfile: - for line in pfile: - if 'Subject:' in line: - match = re.search('<(.+)>', line) - if match: - submodule = match.group(1) - if submodule not in patches_dict: - patches_dict[submodule] = [] - patches_dict[submodule].append(patch_path) - - os.chdir(oldCwd) - return patches_dict +import version_resolver as resolver -def findSnapshotBaselineSha1(): - if not os.path.isdir(snapshot_src_dir): - return '' - oldCwd = os.getcwd() - os.chdir(snapshot_src_dir) - line = subprocess.check_output(['git', 'log', '-n1', '--pretty=oneline', '--grep=' + resolver.currentVersion()]) - os.chdir(oldCwd) - return line.split(' ')[0] +os.chdir(os.path.join(resolver.upstream_src_dir, 'chromium')) -os.chdir(os.path.join(upstream_src_dir, 'chromium')) -if not len(findSnapshotBaselineSha1()): +if not len(resolver.findSnapshotBaselineSha1()): sys.exit('\n-- missing chromium snapshot patches, try running init-repository.py w/o options first --') -patches = preparePatchesFromSnapshot() +patches = resolver.preparePatchesFromSnapshot() + for path in patches: leading = path.count('/') + 2 target_dir = "" if path.startswith('chromium'): - target_dir = os.path.join(upstream_src_dir, path) + target_dir = os.path.join(resolver.upstream_src_dir, path) else: - target_dir = os.path.join(upstream_src_dir, 'chromium', path) + target_dir = os.path.join(resolver.upstream_src_dir, 'chromium', path) leading += 1 if not os.path.isdir(target_dir): diff --git a/tools/scripts/version_resolver.py b/tools/scripts/version_resolver.py index 738798e49..73a5c5c6b 100644 --- a/tools/scripts/version_resolver.py +++ b/tools/scripts/version_resolver.py @@ -41,7 +41,10 @@ # ############################################################################# +import glob import os +import re +import shutil import subprocess import sys import json @@ -55,6 +58,12 @@ json_url = 'http://omahaproxy.appspot.com/all.json' git_deps_url = 'http://src.chromium.org/chrome/branches/' + chromium_branch + '/src/.DEPS.git' base_deps_url = 'http://src.chromium.org/chrome/releases/' +qtwebengine_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) +snapshot_src_dir = os.path.abspath(os.path.join(qtwebengine_root, 'src/3rdparty')) +upstream_src_dir = os.path.abspath(snapshot_src_dir + '_upstream') + +sys.path.append(os.path.join(qtwebengine_root, 'tools', 'scripts')) + def currentVersion(): return chromium_version @@ -143,3 +152,48 @@ def readSubmodules(): module.shasum = git.shasum return sanityCheckModules(submodule_dict.values()) + +def findSnapshotBaselineSha1(): + if not os.path.isdir(snapshot_src_dir): + return '' + oldCwd = os.getcwd() + os.chdir(snapshot_src_dir) + line = subprocess.check_output(['git', 'log', '-n1', '--pretty=oneline', '--grep=' + currentVersion()]) + os.chdir(oldCwd) + return line.split(' ')[0] + +def preparePatchesFromSnapshot(): + oldCwd = os.getcwd() + base_sha1 = findSnapshotBaselineSha1() + if not base_sha1: + sys.exit('-- base sha1 not found in ' + os.getcwd() + ' --') + + patches_dir = os.path.join(upstream_src_dir, 'patches') + if os.path.isdir(patches_dir): + shutil.rmtree(patches_dir) + os.mkdir(patches_dir) + + os.chdir(snapshot_src_dir) + print('-- preparing patches to ' + patches_dir + ' --') + subprocess.call(['git', 'format-patch', '-q', '-o', patches_dir, base_sha1]) + + os.chdir(patches_dir) + patches = glob.glob('00*.patch') + + # We'll collect the patches for submodules in corresponding lists + patches_dict = {} + for patch in patches: + patch_path = os.path.abspath(patch) + with open(patch, 'r') as pfile: + for line in pfile: + if 'Subject:' in line: + match = re.search('<(.+)>', line) + if match: + submodule = match.group(1) + if submodule not in patches_dict: + patches_dict[submodule] = [] + patches_dict[submodule].append(patch_path) + + os.chdir(oldCwd) + return patches_dict + -- cgit v1.2.3