ktlint-gradle
ktlint-gradle copied to clipboard
Gradlew and .git is not in the same root folder- `addKtlintCheckGitPreCommitHook` always successfully even i broke the rule [pre-commit]
Under the same ref: https://github.com/JLLeitschuh/ktlint-gradle/issues/351 Hi @Tapchicoma , As per our discussions I created a new sample project and was able to reproduce the same issues. The details are provided in the readme file.
Please find the sample project here. I think the issue is with the changed file path. Can you please provide more insights on this. Also if multiple files are there in the changed files from different modules, this script will handle it.
#!/bin/sh set -e ######## KTLINT-GRADLE HOOK START ########
CHANGED_FILES="$(git --no-pager diff --name-status --no-color --cached -- public/trunk/ | awk '$1 != "D" && $2 ~ /.kts|.kt/ { print $2}')"
if [ -z "$CHANGED_FILES" ]; then echo "No Kotlin staged files." exit 0 fi;
echo "Running ktlint over these files:" echo "$CHANGED_FILES"
./public/trunk/gradlew -p ./public/trunk --quiet ktlintCheck -PinternalKtlintGitFilter="$CHANGED_FILES"
echo "Completed ktlint run."
echo "Completed ktlint hook." ######## KTLINT-GRADLE HOOK END ########
Thanks in Advance, Syam
@Tapchicoma the changed file path coming is public/trunk/app/src/main/java/com/example/myapplication/MainActivity.kt which is not working but if I change this to app/src/main/java/com/example/myapplication/MainActivity.kt it is working. Can you please suggest what changes we need to make to work it across?
@Tapchicoma the changed file path coming is public/trunk/app/src/main/java/com/example/myapplication/MainActivity.kt which is not working but if I change this to app/src/main/java/com/example/myapplication/MainActivity.kt it is working. Can you please suggest what changes we need to make to work it across?
Thanks in advance
I just ran into the same problem and the issue has to do with the filepath of the changed files that are fed to PinternalKtlintGitFilter. The files include the full dir path, but it looks like the git filter does not understand the full path. When I removed the ./public/trunk/ prefix from those files, I was able to get PinternalKtlintGitFilter to work.
Can you provide the solution here
I've just ran into the same problem too. Basically, the git hook doesn't work if your build.gradle is not at the root of your git repository (e.g. if you are hosting a backend and a frontend in the same git repository, which is quite common).
Was anyone able to figure out the solution for this, also how to make this work for multimodule app?