diff options
author | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2019-01-15 10:55:03 +0000 |
---|---|---|
committer | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2019-01-15 10:55:03 +0000 |
commit | 6c5849c4b8dbe233b5ed120f553458be789c2d90 (patch) | |
tree | 3c6abffebd6dfedf19c488561796036bedd6eea6 | |
parent | abf4d3217a50d4432efb74d78f29cac64f185f55 (diff) |
jenkins-helpers.sh: Implement stack logic for __manifest_file
In tcwg_kernel-bisect.sh we use manifest handling to put options
for tcwg_kernel-build.sh script into build-parameters.sh file.
This overwrites __manifest_file variable of bisect job, so we
end up forwarding half of bisect manifest into build-parameters.sh.
Fix this by adding push/pop logic for __manifest_file variable.
Change-Id: I22adc9f0533024063398b5d7cb1a416cad2aa2d1
-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 |