summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jenkins-helpers.sh34
-rwxr-xr-xtcwg_kernel-bisect.sh1
2 files changed, 26 insertions, 9 deletions
diff --git a/jenkins-helpers.sh b/jenkins-helpers.sh
index cab20f21..33f253c8 100644
--- a/jenkins-helpers.sh
+++ b/jenkins-helpers.sh
@@ -678,7 +678,29 @@ test_array()
# Manifest filename for manifest_out and convert_args_to_variables to write to.
# This is set using "%%" directive to convert_args_to_variables.
-__manifest_filename="/dev/null"
+# This is a stack maintained by manifest_push and manifest_pop.
+__manifest_filename=("/dev/null")
+
+# Set new file name for manifest
+# $1: File name
+manifest_push ()
+{
+ local filename="$1"
+
+ # Resolve absolute path to manifest.
+ local dir=$(dirname "$filename")
+ mkdir -p "$dir"
+ dir=$(cd "$dir"; pwd)
+
+ __manifest_filename=("$dir/$(basename "$filename")" "${__manifest_filename[@]}")
+ rm -f "${__manifest_filename[0]}"
+}
+
+# Return to previous manifest filename
+manifest_pop ()
+{
+ __manifest_filename=("${__manifest_filename[@]:1}")
+}
# Output stdout to the manifest file. Most common case would be
# cat << EOF | manifest_out
@@ -687,7 +709,7 @@ __manifest_filename="/dev/null"
# EOF
manifest_out ()
{
- cat >> "$__manifest_filename"
+ cat >> "${__manifest_filename[0]}"
}
# Process "--var value" and "++arr elem" arguments and define corresponding
@@ -762,13 +784,7 @@ EOF
num=2
;;
"%%")
- __manifest_filename="$2"
- # Resolve absolute path to manifest.
- local dir=$(dirname "$__manifest_filename")
- mkdir -p "$dir"
- dir=$(cd "$dir"; pwd)
- __manifest_filename="$dir/$(basename "$__manifest_filename")"
- rm -f "$__manifest_filename"
+ manifest_push "$2"
cat <<EOF | manifest_out
# Start option processing
jenkins_scripts_rev=$(git_rev_parse $(dirname "$0") HEAD)
diff --git a/tcwg_kernel-bisect.sh b/tcwg_kernel-bisect.sh
index 5b60aca8..234b99c0 100755
--- a/tcwg_kernel-bisect.sh
+++ b/tcwg_kernel-bisect.sh
@@ -21,6 +21,7 @@ reproduce_bisect="${reproduce_bisect:-false}"
# Process build args and record them in build-parameters.sh
convert_args_to_variables %% $artifacts/build-parameters.sh "$@"
+manifest_pop
obligatory_variables current_project toolchain