diff options
-rw-r--r-- | jenkins-helpers.sh | 34 | ||||
-rwxr-xr-x | tcwg_kernel-bisect.sh | 1 |
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 |