@@ -10,15 +10,15 @@ cd "${GITHUB_WORKSPACE}/${INPUT_WORKDIR}" || exit 1
1010export 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
3232fi
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
3737for 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}
6573done
6674
75+ # shellcheck disable=SC2086
6776rubocop ${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