Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(807)

Unified Diff: build/android/play_services/utils.py

Issue 1411183004: Use JSON instead of YAML for the play services scripts config (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Skip reloading config before save Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/android/play_services/update.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/play_services/utils.py
diff --git a/build/android/play_services/utils.py b/build/android/play_services/utils.py
index 94e684bccb823ead280484c9229d6c19c09fc444..90339d25075cc862d41bd4a5a6a83bf95198d2e3 100644
--- a/build/android/play_services/utils.py
+++ b/build/android/play_services/utils.py
@@ -9,20 +9,17 @@ related files.
import argparse
import filecmp
+import json
import logging
import os
import re
import sys
-import yaml
import zipfile
sys.path.append(os.path.join(os.path.dirname(__file__), os.pardir))
from devil.utils import cmd_helper
-_CONFIG_VERSION_NUMBER_KEY = 'version_number'
-_YAML_VERSION_NUMBER_PATTERN = re.compile(
- r'(^\s*%s\s*:\s*)(\d+)(.*$)' % _CONFIG_VERSION_NUMBER_KEY, re.MULTILINE)
_XML_VERSION_NUMBER_PATTERN = re.compile(
r'<integer name="google_play_services_version">(\d+)<\/integer>')
@@ -37,6 +34,39 @@ class DefaultsRawHelpFormatter(argparse.ArgumentDefaultsHelpFormatter,
pass
+class ConfigParser(object):
+ '''Reads and writes the configuration files for play services related scripts
+
+ The configuration files are JSON files. Here is the data they are expected
+ to contain:
+
+ - version_number
+ Number. Mirrors @integer/google_play_services_version from the library.
+ Example: 815000
+
+ '''
+ _VERSION_NUMBER_KEY = 'version_number'
+
+ def __init__(self, path):
+ self.path = path
+ self.data = {}
+
+ with open(path, 'r') as stream:
+ self.data = json.load(stream)
+
+ @property
+ def version_number(self):
+ return self.data[self._VERSION_NUMBER_KEY]
+
+ def UpdateVersionNumber(self, new_version_number):
+ '''Updates the version number and saves it in the configuration file. '''
+
+ with open(self.path, 'w') as stream:
+ self.data[self._VERSION_NUMBER_KEY] = new_version_number
+ json.dump(self.data, stream, sort_keys=True, indent=2)
+ stream.write(os.linesep)
+
+
def FileEquals(expected_file, actual_file):
'''
Returns whether the two files are equal. Returns False if any of the files
@@ -72,38 +102,6 @@ def GetVersionNumberFromLibraryResources(version_xml):
return int(match.group(1))
-def UpdateVersionNumber(config_file_path, new_version_number):
- '''Updates the version number in the update/preprocess configuration file.'''
-
- with open(config_file_path, 'r+') as stream:
- config_content = stream.read()
- # Implemented as string replacement instead of yaml parsing to preserve
- # whitespace and comments.
- updated = _YAML_VERSION_NUMBER_PATTERN.sub(
- r'\g<1>%s\g<3>' % new_version_number, config_content)
- stream.seek(0)
- stream.write(updated)
-
-
-def GetVersionNumber(config_file_path):
- '''
- Returns the version number from an update/preprocess configuration file.
- '''
-
- return int(GetConfig(config_file_path)[_CONFIG_VERSION_NUMBER_KEY])
-
-
-def GetConfig(path):
- '''
- Returns the configuration from an an update/preprocess configuration file as
- as dictionary.
- '''
-
- with open(path, 'r') as stream:
- config = yaml.load(stream)
- return config
-
-
def MakeLocalCommit(repo_root, files_to_commit, message):
'''Makes a local git commit.'''
« no previous file with comments | « build/android/play_services/update.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698