-
Notifications
You must be signed in to change notification settings - Fork 555
Expand file tree
/
Copy pathexit_code_redirect.sh
More file actions
executable file
·71 lines (58 loc) · 2.28 KB
/
exit_code_redirect.sh
File metadata and controls
executable file
·71 lines (58 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash
# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# This script works around a limitation of github actions where
# actions cannot receive a variable number of arguments in an array
# This script takes the last argument and splits it out by new line,
# passing it into osv-scanner as separate arguments
# Get the total number of arguments
total_args=$#
# Extract the last argument
last_arg="${!total_args}"
# Remove the last argument from the list
args=${@:1:$((total_args - 1))}
# () interprets spaces as separate entries in an array
# tr replaces newlines with spaces
split_args=($(echo "$last_arg" | tr '\n' ' '))
# Execute osv-scanner with the provided arguments
osv-scanner $args "${split_args[@]}"
# Store the exit code
exit_code=$?
echo "Exit code: ${exit_code}"
# don't error if there are no lockfiles found
if [[ $exit_code -eq 128 ]]; then
# if the "--allow-no-lockfiles" flag has not been used, print a deprecation warning
using_new_flag="no"
for value in "${args[@]}"; do
if [[ "$value" = "--allow-no-lockfiles" ]] ||
[[ "$value" = "-allow-no-lockfiles" ]] ||
[[ "$value" = "-allow-no-lockfiles=true" ]] ||
[[ "$value" = "--allow-no-lockfiles=true" ]]; then
using_new_flag="yes"
fi
if [[ "$value" = "-allow-no-lockfiles=false" ]] ||
[[ "$value" = "--allow-no-lockfiles=false" ]]; then
exit $exit_code
fi
done
if [[ $using_new_flag = "no" ]]; then
echo "deprecation warning: please use the --allow-no-lockfiles flag if you don't want this action to error when there are no lockfiles"
if [[ -n "$CI" ]]; then
echo "::warning::No lockfiles found. Please use the --allow-no-lockfiles flag to suppress this warning."
fi
fi
exit_code=0
fi
# Exit with the modified exit code
exit $exit_code