[yocto] [[AUH][PATCH] 1/6] upgradehelper.py: Add support to load layer settings
Aníbal Limón
anibal.limon at linux.intel.com
Thu May 18 14:21:41 PDT 2017
Those settings are to support layer recipe upgrades runs
into the AUH.
[YOCTO #8962]
Signed-off-by: Aníbal Limón <anibal.limon at linux.intel.com>
---
upgradehelper.py | 42 ++++++++++++++++++++++++++++++++++--------
1 file changed, 34 insertions(+), 8 deletions(-)
diff --git a/upgradehelper.py b/upgradehelper.py
index df7d36d..f7b87c6 100755
--- a/upgradehelper.py
+++ b/upgradehelper.py
@@ -131,10 +131,6 @@ class Updater(object):
def __init__(self, auto_mode=False, send_email=False, skip_compilation=False):
build_dir = get_build_dir()
- self._make_dirs(build_dir)
-
- self._add_file_logger()
-
self.bb = Bitbake(build_dir)
try:
@@ -145,18 +141,43 @@ class Updater(object):
E( " Bitbake output:\n%s" % (e.stdout))
exit(1)
+ self._set_options(auto_mode, send_email, skip_compilation)
+
+ self._make_dirs(build_dir)
+
+ self._add_file_logger()
+
self.email_handler = Email(settings)
self.statistics = Statistics()
- # XXX: assume that the poky directory is the first entry in the PATH
- self.git = Git(os.path.dirname(os.getenv('PATH', False).split(':')[0]))
+ def _set_options(self, auto_mode, send_email, skip_compilation):
self.opts = {}
+ self.opts['layer_mode'] = settings.get('layer_mode', '')
+ if self.opts['layer_mode'] == 'yes':
+ def _layer_settings_error(setting):
+ E(" In layer mode enable you need to specify %s.\n" % setting)
+ exit(1)
+
+ layer_settings = ('layer_name', 'layer_dir', 'layer_machines')
+ for s in layer_settings:
+ self.opts[s] = settings.get(s, '')
+ if not self.opts[s]:
+ _layer_settings_error(s)
+
+ self.git = Git(self.opts['layer_dir'])
+ self.poky_git = Git(os.path.dirname(os.getenv('PATH', False).split(':')[0]))
+ self.opts['machines'] = self.opts['layer_machines'].split()
+ else:
+ # XXX: assume that the poky directory is the first entry in the PATH
+ self.git = Git(os.path.dirname(os.getenv('PATH', False).split(':')[0]))
+ self.poky_git = None
+ self.opts['machines'] = settings.get('machines',
+ 'qemux86 qemux86-64 qemuarm qemumips qemuppc').split()
+
self.opts['interactive'] = not auto_mode
self.opts['send_email'] = send_email
self.opts['author'] = "Upgrade Helper <%s>" % \
settings.get('from', 'uh at not.set')
- self.opts['machines'] = settings.get('machines',
- 'qemux86 qemux86-64 qemuarm qemumips qemuppc').split()
self.opts['skip_compilation'] = skip_compilation
self.opts['buildhistory'] = self._buildhistory_is_enabled()
self.opts['testimage'] = self._testimage_is_enabled()
@@ -168,6 +189,11 @@ class Updater(object):
self.uh_base_work_dir = settings.get('workdir', '')
if not self.uh_base_work_dir:
self.uh_base_work_dir = self.uh_dir
+ if self.opts['layer_mode'] == 'yes':
+ self.uh_base_work_dir = os.path.join(self.uh_base_work_dir,
+ self.opts['layer_name'])
+ if not os.path.exists(self.uh_base_work_dir):
+ os.mkdir(self.uh_base_work_dir)
self.uh_work_dir = os.path.join(self.uh_base_work_dir, "%s" % \
datetime.now().strftime("%Y%m%d%H%M%S"))
os.mkdir(self.uh_work_dir)
--
2.1.4
More information about the yocto
mailing list