Add work directory with datetime suffix to preserve recipe upgrades. Create tree folders all, succeed and failed, all - Contains all the recipes work succeed - Contains a symlinks to the recipes that successful upgrade failed - Contains a symlinks to the recipes that fail upgrade
This helps to navigate over patches that have a successful upgrade. Signed-off-by: Aníbal Limón <anibal.li...@linux.intel.com> --- upgradehelper.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/upgradehelper.py b/upgradehelper.py index 195d8c9..ae8fc48 100755 --- a/upgradehelper.py +++ b/upgradehelper.py @@ -132,9 +132,16 @@ class Updater(object): if not os.path.exists(self.uh_dir): os.mkdir(self.uh_dir) - self.uh_work_dir = os.path.join(self.uh_dir, "work") - if not os.path.exists(self.uh_work_dir): - os.mkdir(self.uh_work_dir) + self.uh_work_dir = os.path.join(self.uh_dir, "work-%s" % \ + datetime.now().strftime("%Y%m%d%H%M")) + os.mkdir(self.uh_work_dir) + + self.uh_recipes_all_dir = os.path.join(self.uh_work_dir, "all") + os.mkdir(self.uh_recipes_all_dir) + self.uh_recipes_succeed_dir = os.path.join(self.uh_work_dir, "succeed") + os.mkdir(self.uh_recipes_succeed_dir) + self.uh_recipes_failed_dir = os.path.join(self.uh_work_dir, "failed") + os.mkdir(self.uh_recipes_failed_dir) self.bb = Bitbake(get_build_dir()) self.git = None @@ -223,10 +230,7 @@ class Updater(object): self.env = self._get_env(self.pn) def _create_workdir(self): - self.workdir = os.path.join(self.uh_work_dir, self.pn) - - if os.path.exists(self.workdir): - shutil.rmtree(self.workdir) + self.workdir = os.path.join(self.uh_recipes_all_dir, self.pn) os.mkdir(self.workdir) def _detect_repo(self): @@ -490,6 +494,9 @@ class Updater(object): I(" %s: %s" % (self.pn, msg)) step() + os.symlink(self.workdir, os.path.join( \ + self.uh_recipes_succeed_dir, self.pn)) + I(" %s: Upgrade SUCCESSFUL! Please test!" % self.pn) except Exception as e: if isinstance(e, UpgradeNotNeededError): @@ -511,6 +518,9 @@ class Updater(object): error = e + os.symlink(self.workdir, os.path.join( \ + self.uh_recipes_failed_dir, self.pn)) + self._commit_changes() self.pkg_upgrade_handler(error) -- 2.1.4 -- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto