forked from realpacific/algorithms
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun.sh
executable file
·48 lines (41 loc) · 1.1 KB
/
run.sh
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
#!/bin/bash
isJavaMainClass() {
echo "$(
grep -q "public static void main" "$1"
echo $?
)"
}
isKotlinMainClass() {
echo "$(
grep -q "fun main()" "$1"
echo $?
)"
}
removeExtension() {
echo "$(echo "$1" | cut -f 1 -d '.')"
}
find . -type f -name "*.class" -exec rm -f {} \;
rm jvm-logs.txt || true
for i in $(git ls-files | grep .kt); do
filename=$(removeExtension "$i")
isMainClass=$(isKotlinMainClass "$i")
if [[ "$isMainClass" == "0" ]]; then
kotlinFileName="$filename"'Kt'
kotlinFileName="${kotlinFileName#src/}"
echo ">>>>> Executing file $kotlinFileName"
./gradlew -PmainClass="$kotlinFileName" execClass -q -Dorg.gradle.console=plain --warning-mode=summary
else
echo ">>>>> Skipping $i"
fi
done
for i in $(git ls-files | grep .java); do
filename=$(removeExtension "$i")
isMainClass=$(isJavaMainClass "$i")
if [[ "$isMainClass" == "0" ]]; then
echo ">>>>> Executing file $i"
filename="${filename#src/}"
./gradlew -PmainClass="$filename" execClass -q -Dorg.gradle.console=plain --warning-mode=summary
else
echo ">>>>> Skipping $i"
fi
done