Skip to content

Commit

Permalink
feat: precommit with detekt
Browse files Browse the repository at this point in the history
  • Loading branch information
thomasBousselin committed Jun 19, 2024
1 parent 27154b5 commit b27f49d
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 1 deletion.
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
repos:
- repo: local
hooks:
- id: detekt
name: detekt check
description: Runs `detekt` on modified .kt files.
language: script
entry: config/detekt/detekt.sh
files: \.kt
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,17 @@ If you want to build only one of the services, you can launch:

Commits follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/).

### Pre-commit
The precommit hook use gradle to automatically apply detekt rules.
It will not be able to work if gradle is not in your $path variable

#### With [pre-commit](https://pre-commit.com/) tool : (use python if u don't have python use the manual setup)
- install ```pip install pre-commit```
- then run ```pre-commit install```
#### Manual setup :
- copy the script in ```config/detekt/detekt.sh``` in your ```.git/pre-commit.sample``` file


### Code quality

Code formatting and standard code quality checks are performed by [Detekt](https://detekt.github.io/detekt/index.html).
Expand Down
65 changes: 65 additions & 0 deletions config/detekt/detekt.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/usr/bin/env bash
echo "Running detekt check..."
OUTPUT="/tmp/detekt-$(date +%s)"
COUNTER=0
EXIT_CODE=1




until [ $COUNTER -gt 5 ] || [ $EXIT_CODE -eq 0 ]
do
./gradlew detekt --auto-correct > $OUTPUT
EXIT_CODE=$?
echo "execute $COUNTER time"
cat $OUTPUT
COUNTER=$((COUNTER+1))
echo "detekt return $EXIT_CODE"
done
rm $OUTPUT

if [ $EXIT_CODE -eq 0 ] && [ $COUNTER -eq 1 ]; then
echo "***********************************************"
echo " Validation succeeded "
echo "***********************************************"
echo ""
exit 0
fi

if [ $EXIT_CODE -eq 0 ] ; then
echo "*************************************************"
echo " Validation failed "
echo " Fix succeeded "
echo ""
echo " The fix were successfully applied "
echo "You can retry the commit with the applied changes"
echo "*************************************************"
echo ""
exit 1
fi

if [ $EXIT_CODE -eq 1 ]; then
echo "***********************************************"
echo " detekt failed "
echo " unexpected error "
echo "***********************************************"
echo ""
exit 1
fi

if [ $EXIT_CODE -eq 2 ]; then
echo "***********************************************"
echo " detekt failed "
echo " Please fix the above issues before committing "
echo "***********************************************"
exit 1
fi

if [ $EXIT_CODE -eq 2 ]; then
echo "***********************************************"
echo " detekt failed "
echo " Invalid detekt configuration file "
echo "***********************************************"
echo ""
exit 1
fi
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import com.egm.stellio.shared.util.JsonLdUtils.NGSILD_PROPERTY_TERM
import com.egm.stellio.shared.util.JsonLdUtils.NGSILD_RELATIONSHIP_TERM
import com.egm.stellio.shared.util.JsonLdUtils.NGSILD_SYSATTRS_TERMS
import com.egm.stellio.shared.util.JsonLdUtils.NGSILD_VOCABPROPERTY_TERM
import java.util.Locale
import java.util.*

typealias CompactedEntity = Map<String, Any>

Expand Down Expand Up @@ -133,6 +133,7 @@ fun CompactedEntity.withoutSysAttrs(sysAttrToKeep: String?): Map<String, Any> {
*
* As a GeoJSON representation may have a null value for a key, returns a Map<String, Any?> instead of CompactedEntity.
*/

fun CompactedEntity.toFinalRepresentation(
ngsiLdDataRepresentation: NgsiLdDataRepresentation
): Map<String, Any?> =
Expand Down

0 comments on commit b27f49d

Please sign in to comment.