cros_build_lib: LoadKeyValueFile: new helper func for reading key=value files
This takes existing code in cros_sdk and generalizes it a bit so it can be
used elsewhere (parsing general shell config files).
Then we gut similar logic in layout.conf parsing and use this new func.
BUG=chromium-os:36453
TEST=`./lib/cros_build_lib_unittest.py` passes
TEST=`cros_sdk --chroot=new_chroot` works
TEST=`cbuildbot daisy-paladin` shows egencache running for right repos
Change-Id: I133e188fc983d4cc2d1b0cfccf48a80cc76a8383
Reviewed-on: https://gerrit.chromium.org/gerrit/40603
Reviewed-by: Ryan Cui <rcui@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/scripts/cros_sdk.py b/scripts/cros_sdk.py
index 9129255..a21caeb 100644
--- a/scripts/cros_sdk.py
+++ b/scripts/cros_sdk.py
@@ -6,7 +6,6 @@
"""This script fetches and prepares an SDK chroot.
"""
-import errno
import os
import sys
import urlparse
@@ -37,25 +36,6 @@
NEEDED_TOOLS = ('curl', 'xz', 'unshare')
-def GetSdkConfig():
- """Extracts latest version from chromiumos-overlay."""
- d = {}
- try:
- with open(SDK_VERSION_FILE) as f:
- for raw_line in f:
- line = raw_line.split('#')[0].strip()
- if not line:
- continue
- chunks = line.split('=', 1)
- if len(chunks) != 2:
- raise Exception('Malformed version file; line %r' % raw_line)
- d[chunks[0]] = chunks[1].strip().strip('"')
- except EnvironmentError, e:
- if e.errno != errno.ENOENT:
- raise
- return d
-
-
def GetArchStageTarballs(version):
"""Returns the URL for a given arch/version"""
extension = {'bz2':'tbz2', 'xz':'tar.xz'}
@@ -233,7 +213,7 @@
to an interactive bash shell within the chroot.
If given args those are passed to the chroot environment, and executed."""
- conf = GetSdkConfig()
+ conf = cros_build_lib.LoadKeyValueFile(SDK_VERSION_FILE, ignore_missing=True)
sdk_latest_version = conf.get('SDK_LATEST_VERSION', '<unknown>')
bootstrap_latest_version = conf.get('BOOTSTRAP_LATEST_VERSION', '<unknown>')