feat: improved argument parsing + support for different languages for… · caoychn/pre-commit-java@b3dd165 · GitHub
Skip to content

Commit b3dd165

Browse files
committed
feat: improved argument parsing + support for different languages for CPD
1 parent 13322f0 commit b3dd165

3 files changed

Lines changed: 28 additions & 31 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions

run_cpd.sh

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
#!/bin/bash
22

3-
# find the index of the first parameter with a Java file path
4-
idx=1
3+
# extract parameters and files
4+
cpd_args=""
5+
rm -f /tmp/list
56
for (( i=1; i <= "$#"; i++ )); do
6-
if [[ ${!i} == *.java ]]; then
7-
idx=${i}
8-
break
7+
if [[ ${!i} =~ --?[^=]+=.* || ${!i} =~ --?[^=]+ ]]; then
8+
cpd_args="$cpd_args ${!i}"
9+
else
10+
echo "${!i}" >> /tmp/list
911
fi
1012
done
1113

1214
# add default minimum tokens if not specified
13-
cpd_args="${*:1:idx-1}"
14-
if [[ ! $cpd_args == *"--minimum-tokens "* ]]; then
15-
cpd_args="$cpd_args --minimum-tokens 100"
15+
if [[ ! $cpd_args == *"--minimum-tokens="* ]]; then
16+
cpd_args="$cpd_args --minimum-tokens=100"
1617
fi
1718

18-
# populate list of files to analise
19-
files="${*:idx}"
20-
eol=$'\n'
21-
echo "${files// /$eol}" > /tmp/list
19+
# add default language if not specified
20+
if [[ ! $cpd_args == *"--language="* && ! $cpd_args == *"-l="* ]]; then
21+
cpd_args="$cpd_args --language=java"
22+
fi
2223

2324
# shellcheck disable=SC2086
24-
/opt/pmd/bin/pmd cpd --format text --language java $cpd_args --file-list /tmp/list
25+
/opt/pmd/bin/pmd cpd --format=text $cpd_args --file-list=/tmp/list

run_pmd.sh

Lines changed: 12 additions & 16 deletions

0 commit comments

Comments
 (0)