-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstatic-analysis.sh.command
More file actions
executable file
·65 lines (60 loc) · 1.48 KB
/
static-analysis.sh.command
File metadata and controls
executable file
·65 lines (60 loc) · 1.48 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
#!/bin/bash
################
# Analyse Code #
# WTFPL #
################
banner="Java Snippets - Static Code Analysis"
projectHome=$(cd $(dirname $0); pwd)
pmdVersion=$(curl --silent https://pmd.github.io | grep "Latest Version:" | awk '{ print $3 }')
pmdZipFile=pmd-dist-$pmdVersion-bin.zip
pmdDownload=https://github.com/pmd/pmd/releases/download/pmd_releases%2F$pmdVersion/$pmdZipFile
pmdFolder=$projectHome/static-analysis/pmd/pmd-bin-$pmdVersion
displayIntro() {
cd $projectHome
echo
echo $banner
echo $(echo $banner | sed s/./=/g)
pwd
echo
}
setupPmd() {
cd $projectHome
echo "Setup PMD:"
echo $pmdVersion
echo $pmdFolder
which java || exit
java --version
downloadPmd() {
echo "Downloading..."
echo $pmdDownload
mkdir -pv static-analysis/pmd
cd static-analysis/pmd
pwd
curl --location --remote-name $pmdDownload
ls -o *.zip
unzip $pmdZipFile
rm $pmdZipFile
ls -o
}
test -d $pmdFolder || downloadPmd
echo
}
runPmd() {
cd $projectHome/static-analysis
echo "Run PMD:"
pwd
report=$projectHome/static-analysis/report.html
$pmdFolder/bin/pmd check --dir $projectHome/src --rulesets rule-set-good-java.xml \
--no-cache --format html --report-file $report
fixPage="s|<head>|<head><style>html { font-family: system-ui; }</style>|"
sed -i "" "$fixPage" $report
echo
echo "Report:"
echo $report
echo
}
displayIntro
setupPmd
runPmd
sleep 2
open $report