From dee53c709485dbf00dfa0946a893ed7f08f6cec8 Mon Sep 17 00:00:00 2001 From: Tobias Ulmer Date: Fri, 21 Oct 2016 16:12:55 +0200 Subject: [PATCH] result: move buildconfig implementation into result_class Signed-off-by: Tobias Ulmer --- local/result.lua | 91 +++++++++++++++++++------------------ plugins/collect_project.lua | 4 ++ 2 files changed, 52 insertions(+), 43 deletions(-) diff --git a/local/result.lua b/local/result.lua index ee90f44..b6fd66b 100644 --- a/local/result.lua +++ b/local/result.lua @@ -136,49 +136,8 @@ end -- @return build_config table (locked) or false on error -- @return error object. function result.basic_result:build_config() - local rc, re, e, buildid, bc, tmpdir, builddir, info - - info = e2tool.info() - assertIsTable(info) - e = err.new("preparing build config for %s failed", self:get_name()) - - buildid, re = self:buildid() - if not buildid then - return false, e:cat(re) - end - - bc = {} - tmpdir = string.format("%s/e2factory-%s.%s.%s-build/%s", - e2lib.globals.tmpdir, buildconfig.MAJOR, buildconfig.MINOR, - buildconfig.PATCHLEVEL, e2lib.globals.osenv["USER"]) - builddir = "tmp/e2" - - bc.base = e2lib.join(tmpdir, project.name(), self:get_name()) - bc.c = e2lib.join(bc.base, "chroot") - bc.chroot_marker = e2lib.join(bc.base, "e2factory-chroot") - bc.chroot_lock = e2lib.join(bc.base, "e2factory-chroot-lock") - bc.T = e2lib.join(bc.c, builddir) - bc.Tc = e2lib.join("/", builddir) - bc.r = self:get_name() - bc.chroot_call_prefix = project.chroot_call_prefix() - bc.buildlog = string.format("%s/log/build.%s.log", info.root, self:get_name()) - bc.scriptdir = "script" - bc.build_driver_file = "build-driver" - bc.buildrc_file = "buildrc" - bc.buildrc_noinit_file = "buildrc-noinit" - bc.profile = "/tmp/bashrc" - - bc.builtin_env = environment.new() - bc.builtin_env:set("E2_TMPDIR", bc.Tc) - bc.builtin_env:set("E2_RESULT", self:get_name()) - bc.builtin_env:set("E2_RELEASE_ID", project.release_id()) - bc.builtin_env:set("E2_PROJECT_NAME", project.name()) - bc.builtin_env:set("E2_BUILDID", buildid) - bc.builtin_env:set("T", bc.Tc) - bc.builtin_env:set("r", self:get_name()) - bc.builtin_env:set("R", self:get_name()) - - return strict.readonly(bc) + error(err.new("called build_config() of result base class, type %s name %s", + self._type, self._name)) end --- Get/set build_mode table for result. Needs to be set before certain @@ -425,6 +384,52 @@ function result.result_class:my_chroot_list() return self._chroot_list end +function result.result_class:build_config() + local rc, re, e, buildid, bc, tmpdir, builddir, info + + info = e2tool.info() + assertIsTable(info) + e = err.new("preparing build config for %s failed", self:get_name()) + + buildid, re = self:buildid() + if not buildid then + return false, e:cat(re) + end + + bc = {} + tmpdir = string.format("%s/e2factory-%s.%s.%s-build/%s", + e2lib.globals.tmpdir, buildconfig.MAJOR, buildconfig.MINOR, + buildconfig.PATCHLEVEL, e2lib.globals.osenv["USER"]) + builddir = "tmp/e2" + + bc.base = e2lib.join(tmpdir, project.name(), self:get_name()) + bc.c = e2lib.join(bc.base, "chroot") + bc.chroot_marker = e2lib.join(bc.base, "e2factory-chroot") + bc.chroot_lock = e2lib.join(bc.base, "e2factory-chroot-lock") + bc.T = e2lib.join(bc.c, builddir) + bc.Tc = e2lib.join("/", builddir) + bc.r = self:get_name() + bc.chroot_call_prefix = project.chroot_call_prefix() + bc.buildlog = string.format("%s/log/build.%s.log", info.root, self:get_name()) + bc.scriptdir = "script" + bc.build_driver_file = "build-driver" + bc.buildrc_file = "buildrc" + bc.buildrc_noinit_file = "buildrc-noinit" + bc.profile = "/tmp/bashrc" + + bc.builtin_env = environment.new() + bc.builtin_env:set("E2_TMPDIR", bc.Tc) + bc.builtin_env:set("E2_RESULT", self:get_name()) + bc.builtin_env:set("E2_RELEASE_ID", project.release_id()) + bc.builtin_env:set("E2_PROJECT_NAME", project.name()) + bc.builtin_env:set("E2_BUILDID", buildid) + bc.builtin_env:set("T", bc.Tc) + bc.builtin_env:set("r", self:get_name()) + bc.builtin_env:set("R", self:get_name()) + + return strict.readonly(bc) +end + function result.result_class:merged_env() local e = environment.new() diff --git a/plugins/collect_project.lua b/plugins/collect_project.lua index 62ffd17..77d5059 100644 --- a/plugins/collect_project.lua +++ b/plugins/collect_project.lua @@ -471,6 +471,10 @@ function collect_project_class:buildid() return bid end +function collect_project_class:build_config() + return self._stdresult:build_config() +end + function collect_project_class:build_mode(bm) return self._stdresult:build_mode(bm) end -- 2.39.5