build: use lists to define mock invocations

The two mock invocations are becoming lengthy, and it's difficult to
spot problems with these calls due to the way in which they are written.

For better maintainability, use formatted string literals, and define
all mock command line arguments in a list. We can then convert the list
to a string with space-separated arguments and pass it to util.call().

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>
This commit is contained in:
Patrick McCarty
2019-11-11 11:42:36 -08:00
committed by William Douglas
parent e283a7f24f
commit 274de4d028
+32 -12
View File
@@ -331,29 +331,49 @@ def package(filemanager, mockconfig, mockopts, cleanup=False):
shutil.rmtree('{}/results'.format(download_path), ignore_errors=True)
os.makedirs('{}/results'.format(download_path))
util.call("{} -r {} --buildsrpm --sources=./ --spec={}.spec "
"--uniqueext={} --result=results/ {} {}"
.format(mock_cmd, mockconfig, tarball.name, uniqueext, cleanup_flag,
mockopts),
logfile="%s/results/mock_srpm.log" % download_path, cwd=download_path)
cmd_args = [
mock_cmd,
f"--root={mockconfig}",
"--buildsrpm",
"--sources=./",
f"--spec={tarball.name}.spec",
f"--uniqueext={uniqueext}",
"--result=results/",
cleanup_flag,
mockopts,
]
util.call(" ".join(cmd_args),
logfile=f"{download_path}/results/mock_srpm.log",
cwd=download_path)
# back up srpm mock logs
util.call("mv results/root.log results/srpm-root.log", cwd=download_path)
util.call("mv results/build.log results/srpm-build.log", cwd=download_path)
srcrpm = "results/%s-%s-%s.src.rpm" % (tarball.name, tarball.version, tarball.release)
returncode = util.call("{} -r {} --result=results/ {} "
"--enable-plugin=ccache --uniqueext={} {}"
.format(mock_cmd, mockconfig, srcrpm, uniqueext, cleanup_flag),
logfile="%s/results/mock_build.log" % download_path, check=False, cwd=download_path)
srcrpm = f"results/{tarball.name}-{tarball.version}-{tarball.release}.src.rpm"
cmd_args = [
mock_cmd,
f"--root={mockconfig}",
"--result=results/",
srcrpm,
"--enable-plugin=ccache",
f"--uniqueext={uniqueext}",
cleanup_flag,
]
ret = util.call(" ".join(cmd_args),
logfile=f"{download_path}/results/mock_build.log",
check=False,
cwd=download_path)
# sanity check the build log
if not os.path.exists(download_path + "/results/build.log"):
util.print_fatal("Mock command failed, results log does not exist. User may not have correct permissions.")
exit(1)
is_clean = parse_buildroot_log(download_path + "/results/root.log", returncode)
is_clean = parse_buildroot_log(download_path + "/results/root.log", ret)
if is_clean:
parse_build_results(download_path + "/results/build.log", returncode, filemanager)
parse_build_results(download_path + "/results/build.log", ret, filemanager)
if filemanager.has_banned:
util.print_fatal("Content in banned paths found, aborting build")
exit(1)