You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by ro...@apache.org on 2020/12/29 13:43:49 UTC
[buildstream] 01/02: Add %{script} format to `buildstream show`
This is an automated email from the ASF dual-hosted git repository.
root pushed a commit to branch non-sandbox-builds
in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit c1954f6d78278b5b8ea1851b73ec8803e1caba56
Author: Tristan Maat <tr...@codethink.co.uk>
AuthorDate: Mon Oct 2 13:41:18 2017 +0100
Add %{script} format to `buildstream show`
---
buildstream/_frontend/main.py | 1 +
buildstream/_frontend/widget.py | 9 +++++++++
buildstream/_platform/platform.py | 0
buildstream/element.py | 22 +++++++++++++++++-----
4 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/buildstream/_frontend/main.py b/buildstream/_frontend/main.py
index c05c441..c96e26e 100644
--- a/buildstream/_frontend/main.py
+++ b/buildstream/_frontend/main.py
@@ -405,6 +405,7 @@ def show(app, target, deps, except_, order, format):
%{public} Public domain data
%{workspaced} If the element is workspaced
%{workspace-dirs} A list of workspace directories
+ %{script} The script executed by the element
The value of the %{symbol} without the leading '%' character is understood
as a pythonic formatting string, so python formatting features apply,
diff --git a/buildstream/_frontend/widget.py b/buildstream/_frontend/widget.py
index 8b55b39..e0fe59a 100644
--- a/buildstream/_frontend/widget.py
+++ b/buildstream/_frontend/widget.py
@@ -644,6 +644,15 @@ class LogLine(Widget):
line = p.fmt_subst(
line, 'workspace-dirs', '')
+ # Script
+ if "%{script" in format:
+ try:
+ script = element._generate_script()
+ except ImplError:
+ script = ""
+
+ line = p.fmt_subst(line, 'script', script)
+
report += line + '\n'
return report.rstrip('\n')
diff --git a/buildstream/_platform/platform.py b/buildstream/_platform/platform.py
old mode 100755
new mode 100644
diff --git a/buildstream/element.py b/buildstream/element.py
index aa7c7e5..e008c4b 100644
--- a/buildstream/element.py
+++ b/buildstream/element.py
@@ -615,18 +615,24 @@ class Element(Plugin):
# Private Methods used in BuildStream #
#############################################################
- # _write_script():
+ # _generate_script():
#
- # Writes a script to the given directory.
- def _write_script(self, directory):
- with open(_site.build_module_template, "r") as f:
+ # Create a build script by substituting
+ # _site.build_module_template with the correct values for this
+ # element.
+ #
+ # Returns:
+ # (str): The build script.
+ #
+ def _generate_script(self):
+ with open(_site.build_module_template, 'r') as f:
script_template = f.read()
variable_string = ""
for var, val in self.get_environment().items():
variable_string += "{0}={1} ".format(var, val)
- script = script_template.format(
+ return script_template.format(
name=self.normal_name,
build_root=self.get_variable('build-root'),
install_root=self.get_variable('install-root'),
@@ -634,6 +640,12 @@ class Element(Plugin):
commands=self.generate_script()
)
+ # _write_script():
+ #
+ # Writes a script to the given directory.
+ def _write_script(self, directory):
+ script = self._generate_script()
+
os.makedirs(directory, exist_ok=True)
script_path = os.path.join(directory, "build-" + self.normal_name)