From f792011e6f123644dfd8e79004a73964c6f99c99 Mon Sep 17 00:00:00 2001 From: "Pawel Hajdan, Jr" Date: Thu, 20 Jan 2011 15:54:29 +0100 Subject: Double-check version.cc when creating the tarball. Sometimes upstream mistags the releases. --- .gitignore | 1 + chromium_tools.py | 28 ++++++++++++++++++++++++++++ setup.py | 1 + v8-create-tarball | 10 ++++++++++ v8-extract-version | 21 ++------------------- 5 files changed, 42 insertions(+), 19 deletions(-) create mode 100644 chromium_tools.py diff --git a/.gitignore b/.gitignore index 551698e..b057d7f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ MANIFEST +*.pyc diff --git a/chromium_tools.py b/chromium_tools.py new file mode 100644 index 0000000..9fbf9f9 --- /dev/null +++ b/chromium_tools.py @@ -0,0 +1,28 @@ +"""Common utilities for chromium-tools scripts.""" + +import re + +_V8_MAJOR_VERSION_PATTERN = re.compile(r"#define\s+MAJOR_VERSION\s+(.*)") +_V8_MINOR_VERSION_PATTERN = re.compile(r"#define\s+MINOR_VERSION\s+(.*)") +_V8_BUILD_NUMBER_PATTERN = re.compile(r"#define\s+BUILD_NUMBER\s+(.*)") +_V8_PATCH_LEVEL_PATTERN = re.compile(r"#define\s+PATCH_LEVEL\s+(.*)") + +_V8_PATTERNS = [ + _V8_MAJOR_VERSION_PATTERN, + _V8_MINOR_VERSION_PATTERN, + _V8_BUILD_NUMBER_PATTERN, + _V8_PATCH_LEVEL_PATTERN] + +def v8_extract_version(version_contents): + """ + Returns version number as string based on the string + contents of version.cc file. + """ + version_components = [] + for pattern in _V8_PATTERNS: + version_components.append(pattern.search(version_contents).group(1).strip()) + + if version_components[len(version_components) - 1] == '0': + version_components.pop() + + return '.'.join(version_components) diff --git a/setup.py b/setup.py index 685eefe..2c1b88d 100644 --- a/setup.py +++ b/setup.py @@ -74,6 +74,7 @@ if enable_subversion: setup( name="chromium-tools", version=get_version(), + py_modules=["chromium_tools"], scripts=scripts, cmdclass=cmdclass, script_args=args diff --git a/v8-create-tarball b/v8-create-tarball index 08d8b06..8306819 100755 --- a/v8-create-tarball +++ b/v8-create-tarball @@ -11,6 +11,8 @@ import shutil import tarfile import tempfile +import chromium_tools + parser = optparse.OptionParser(usage="%prog ") (options, args) = parser.parse_args() if len(args) != 1: @@ -29,6 +31,13 @@ try: svn_client = pysvn.Client() svn_client.checkout(checkout_url, checkout_dir) + version_contents = open(os.path.join(checkout_dir, 'src', 'version.cc')).read() + actual_version = chromium_tools.v8_extract_version(version_contents) + if actual_version != args[0]: + print 'Version info inside version.cc does not match!' + print 'Expected %s, got %s. Exiting' % (args[0], actual_version) + sys.exit(1) + archive_name = '%s.tar.gz' % target_name try: archive = tarfile.open(archive_name, 'w:gz') @@ -40,3 +49,4 @@ try: archive.close() finally: shutil.rmtree(tmpdir) + pass diff --git a/v8-extract-version b/v8-extract-version index a6e271b..277df29 100755 --- a/v8-extract-version +++ b/v8-extract-version @@ -4,25 +4,8 @@ """Extracts V8 version number based on given version.cc file.""" -import re import sys -MAJOR_VERSION_PATTERN = re.compile(r"#define\s+MAJOR_VERSION\s+(.*)") -MINOR_VERSION_PATTERN = re.compile(r"#define\s+MINOR_VERSION\s+(.*)") -BUILD_NUMBER_PATTERN = re.compile(r"#define\s+BUILD_NUMBER\s+(.*)") -PATCH_LEVEL_PATTERN = re.compile(r"#define\s+PATCH_LEVEL\s+(.*)") +import chromium_tools -patterns = [MAJOR_VERSION_PATTERN, - MINOR_VERSION_PATTERN, - BUILD_NUMBER_PATTERN, - PATCH_LEVEL_PATTERN] - -source = open(sys.argv[1]).read() -version_components = [] -for pattern in patterns: - version_components.append(pattern.search(source).group(1).strip()) - -if version_components[len(version_components) - 1] == '0': - version_components.pop() - -print '.'.join(version_components) +print chromium_tools.v8_extract_version(open(sys.argv[1]).read()) -- cgit v1.2.3-65-gdbad