Skip to content

Commit d316153

Browse files
authored
Merge pull request #18 from rewindio/hotfix/fix_extension_processing
Address issues with extension filtering
2 parents 0bc6647 + 7b74ab3 commit d316153

2 files changed

Lines changed: 23 additions & 14 deletions

File tree

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ ENV REVIEWDOG_VERSION v0.10.2
55
SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
66

77
# hadolint ignore=DL3018
8-
RUN apk add --update --no-cache build-base git grep
8+
RUN apk add --update --no-cache build-base git pcre-tools
99
RUN wget -O - -q https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh| sh -s -- -b /usr/local/bin/ $REVIEWDOG_VERSION
1010

1111
COPY entrypoint.sh /entrypoint.sh

entrypoint.sh

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ cd "${GITHUB_WORKSPACE}/${INPUT_WORKDIR}" || exit 1
1010
export REVIEWDOG_GITHUB_API_TOKEN="${INPUT_GITHUB_TOKEN}"
1111

1212
# if 'gemfile' rubocop version selected
13-
if [[ $INPUT_RUBOCOP_VERSION = "gemfile" ]]; then
13+
if [ "${INPUT_RUBOCOP_VERSION}" = "gemfile" ]; then
1414
# if Gemfile.lock is here
15-
if [[ -f 'Gemfile.lock' ]]; then
15+
if [ -f 'Gemfile.lock' ]; then
1616
# grep for rubocop version
17-
RUBOCOP_GEMFILE_VERSION=`cat Gemfile.lock | grep -oP '^\s{4}rubocop\s\(\K.*(?=\))'`
17+
RUBOCOP_GEMFILE_VERSION=$(pcregrep -o '^\s{4}rubocop\s\(\K.*(?=\))' Gemfile.lock)
1818

1919
# if rubocop version found, then pass it to the gem install
2020
# left it empty otherwise, so no version will be passed
21-
if [[ -n "$RUBOCOP_GEMFILE_VERSION" ]]; then
21+
if [ -n "$RUBOCOP_GEMFILE_VERSION" ]; then
2222
RUBOCOP_VERSION=$RUBOCOP_GEMFILE_VERSION
2323
else
2424
printf "Cannot get the rubocop's version from Gemfile.lock. The latest version will be installed."
@@ -31,24 +31,24 @@ if [[ $INPUT_RUBOCOP_VERSION = "gemfile" ]]; then
3131
RUBOCOP_VERSION=$INPUT_RUBOCOP_VERSION
3232
fi
3333

34-
gem install -N rubocop $(version $RUBOCOP_VERSION)
34+
gem install -N rubocop --version "${RUBOCOP_VERSION}"
3535

3636
# Traverse over list of rubocop extensions
3737
for extension in $INPUT_RUBOCOP_EXTENSIONS; do
3838
# grep for name and version
39-
INPUT_RUBOCOP_EXTENSION_NAME=`echo $extension | grep -oP '^rubocop-\w*'`
40-
INPUT_RUBOCOP_EXTENSION_VERSION=`echo $extension | grep -oP '^rubocop-\w*:\K(.*)'`
39+
INPUT_RUBOCOP_EXTENSION_NAME=$(echo "$extension" |awk 'BEGIN { FS = ":" } ; { print $1 }')
40+
INPUT_RUBOCOP_EXTENSION_VERSION=$(echo "$extension" |awk 'BEGIN { FS = ":" } ; { print $2 }')
4141

4242
# if version is 'gemfile'
43-
if [[ $INPUT_RUBOCOP_EXTENSION_VERSION = "gemfile" ]]; then
43+
if [ "${INPUT_RUBOCOP_EXTENSION_VERSION}" = "gemfile" ]; then
4444
# if Gemfile.lock is here
45-
if [[ -f 'Gemfile.lock' ]]; then
45+
if [ -f 'Gemfile.lock' ]; then
4646
# grep for rubocop extension version
47-
RUBOCOP_EXTENSION_GEMFILE_VERSION=`cat Gemfile.lock | grep -oP "^\s{4}$INPUT_RUBOCOP_EXTENSION_NAME\s\(\K.*(?=\))"`
47+
RUBOCOP_EXTENSION_GEMFILE_VERSION=$(pcregrep -o "^\s{4}$INPUT_RUBOCOP_EXTENSION_NAME\s\(\K.*(?=\))" Gemfile.lock)
4848

4949
# if rubocop extension version found, then pass it to the gem install
5050
# left it empty otherwise, so no version will be passed
51-
if [[ -n "$RUBOCOP_EXTENSION_GEMFILE_VERSION" ]]; then
51+
if [ -n "$RUBOCOP_EXTENSION_GEMFILE_VERSION" ]; then
5252
RUBOCOP_EXTENSION_VERSION=$RUBOCOP_EXTENSION_GEMFILE_VERSION
5353
else
5454
printf "Cannot get the rubocop extension version from Gemfile.lock. The latest version will be installed."
@@ -61,14 +61,23 @@ for extension in $INPUT_RUBOCOP_EXTENSIONS; do
6161
RUBOCOP_EXTENSION_VERSION=$INPUT_RUBOCOP_EXTENSION_VERSION
6262
fi
6363

64-
gem install -N $INPUT_RUBOCOP_EXTENSION_NAME $(version $RUBOCOP_EXTENSION_VERSION)
64+
# Handle extensions with no version qualifier
65+
if [ -z "${RUBOCOP_EXTENSION_VERSION}" ]; then
66+
unset RUBOCOP_EXTENSION_VERSION_FLAG
67+
else
68+
RUBOCOP_EXTENSION_VERSION_FLAG="--version ${RUBOCOP_EXTENSION_VERSION}"
69+
fi
70+
71+
# shellcheck disable=SC2086
72+
gem install -N "${INPUT_RUBOCOP_EXTENSION_NAME}" ${RUBOCOP_EXTENSION_VERSION_FLAG}
6573
done
6674

75+
# shellcheck disable=SC2086
6776
rubocop ${INPUT_RUBOCOP_FLAGS} \
6877
| reviewdog -f=rubocop \
6978
-name="${INPUT_TOOL_NAME}" \
7079
-reporter="${INPUT_REPORTER}" \
7180
-filter-mode="${INPUT_FILTER_MODE}" \
7281
-fail-on-error="${INPUT_FAIL_ON_ERROR}" \
7382
-level="${INPUT_LEVEL}" \
74-
${INPUT_REVIEWDOG_FLAGS}
83+
"${INPUT_REVIEWDOG_FLAGS}"

0 commit comments

Comments
 (0)