aboutsummaryrefslogtreecommitdiff
path: root/cros_utils/manifest_versions.py
diff options
context:
space:
mode:
Diffstat (limited to 'cros_utils/manifest_versions.py')
-rw-r--r--cros_utils/manifest_versions.py79
1 files changed, 68 insertions, 11 deletions
diff --git a/cros_utils/manifest_versions.py b/cros_utils/manifest_versions.py
index 52fd700f..47e2fb20 100644
--- a/cros_utils/manifest_versions.py
+++ b/cros_utils/manifest_versions.py
@@ -7,6 +7,7 @@ from __future__ import print_function
__author__ = 'llozano@google.com (Luis Lozano)'
+import copy
import os
import re
import shutil
@@ -48,8 +49,10 @@ class ManifestVersions(object):
else:
versions_git = (
'https://chromium.googlesource.com/chromiumos/manifest-versions.git')
- commands = ['cd {0}'.format(self.clone_location),
- 'git clone {0}'.format(versions_git)]
+ commands = [
+ 'cd {0}'.format(self.clone_location),
+ 'git clone {0}'.format(versions_git)
+ ]
ret = self.ce.RunCommands(commands)
if ret:
logger.GetLogger().LogFatal('Failed to clone manifest-versions.')
@@ -58,26 +61,78 @@ class ManifestVersions(object):
if self.clone_location:
shutil.rmtree(self.clone_location)
+ def TimeToVersionChromeOS(self, my_time):
+ """Convert timestamp to version number, in ChromeOS/Paladin."""
+ cur_time = time.mktime(time.gmtime())
+ des_time = float(my_time)
+ if cur_time - des_time > 7000000:
+ logger.GetLogger().LogFatal('The time you specify is too early.')
+ commands = [
+ 'cd {0}'.format(self.clone_location), 'cd manifest-versions',
+ 'git checkout -f $(git rev-list' +
+ ' --max-count=1 --before={0} origin/master)'.format(my_time)
+ ]
+ ret = self.ce.RunCommands(commands)
+ if ret:
+ logger.GetLogger().LogFatal('Failed to checkout manifest at '
+ 'specified time')
+ path = os.path.realpath(
+ '{0}/manifest-versions/LKGM/lkgm.xml'.format(self.clone_location))
+ pp = path.split('/')
+ new_list = copy.deepcopy(pp)
+ for i, e in enumerate(pp):
+ if e == 'android-LKGM-candidates':
+ new_list[i] = 'paladin'
+ chrome_path = '/'.join(new_list)
+ if not os.path.exists(chrome_path):
+ logger.GetLogger().LogOutput('LKGM path is %s' % path)
+ logger.GetLogger().LogOutput('Cannot find path %s' % chrome_path)
+ pieces = os.path.basename(chrome_path).split('.')
+ pieces = pieces[:-2]
+ new_base = '.'.join(pieces) + '*'
+ wild_path = os.path.join('/', '/'.join(new_list[:-1]), new_base)
+ command = 'ls %s' % wild_path
+ ret, out, _ = self.ce.RunCommandWOutput(command)
+ if ret == 0:
+ out = out.strip()
+ files = out.split('\n')
+ latest = files[-1]
+ small = os.path.basename(latest).split('.xml')[0]
+ version = pp[-2] + '.' + small
+ else:
+ small = os.path.basename(path).split('.xml')[0]
+ version = pp[-2] + '.' + small
+ commands = [
+ 'cd {0}'.format(self.clone_location), 'cd manifest-versions',
+ 'git checkout master'
+ ]
+ self.ce.RunCommands(commands)
+ return version
+
def TimeToVersion(self, my_time):
"""Convert timestamp to version number."""
cur_time = time.mktime(time.gmtime())
des_time = float(my_time)
if cur_time - des_time > 7000000:
logger.GetLogger().LogFatal('The time you specify is too early.')
- commands = ['cd {0}'.format(self.clone_location), 'cd manifest-versions',
- 'git checkout -f $(git rev-list' +
- ' --max-count=1 --before={0} origin/master)'.format(my_time)]
+ commands = [
+ 'cd {0}'.format(self.clone_location), 'cd manifest-versions',
+ 'git checkout -f $(git rev-list' +
+ ' --max-count=1 --before={0} origin/master)'.format(my_time)
+ ]
ret = self.ce.RunCommands(commands)
if ret:
logger.GetLogger().LogFatal('Failed to checkout manifest at '
'specified time')
- path = os.path.realpath('{0}/manifest-versions/LKGM/lkgm.xml'.format(
- self.clone_location))
+ path = os.path.realpath(
+ '{0}/manifest-versions/LKGM/lkgm.xml'.format(self.clone_location))
pp = path.split('/')
small = os.path.basename(path).split('.xml')[0]
version = pp[-2] + '.' + small
- commands = ['cd {0}'.format(self.clone_location), 'cd manifest-versions',
- 'git checkout master']
+ commands = [
+ 'cd {0}'.format(self.clone_location), 'cd manifest-versions',
+ 'git checkout master'
+ ]
self.ce.RunCommands(commands)
return version
@@ -86,8 +141,10 @@ class ManifestVersions(object):
assert not IsRFormatCrosVersion(version)
version = version.split('.', 1)[1]
os.chdir(self.clone_location)
- files = [os.path.join(r, f)
- for r, _, fs in os.walk('.') for f in fs if version in f]
+ files = [
+ os.path.join(r, f) for r, _, fs in os.walk('.') for f in fs
+ if version in f
+ ]
if files:
command = 'cp {0} {1}'.format(files[0], to_file)
ret = self.ce.RunCommand(command)