#1370 install git hooks on prebuild - update editorconfig from project codestyle settings

This commit is contained in:
Sean Mac Gillicuddy 2019-07-24 15:11:33 +01:00
parent 97d6932062
commit a596e34ace
5 changed files with 86 additions and 17 deletions

View File

@ -1,20 +1,35 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*] [*]
end_of_line = lf charset=utf-8
indent_style = space end_of_line=lf
indent_size = 2 insert_final_newline=true
insert_final_newline = true indent_style=space
charset = utf-8 indent_size=2
# android studio / intellij specific, also in squares android style guide:
# https://github.com/kiwix/kiwix-android/blob/master/docs/codestyle.md
continuation_indent_size = 4
# windows command files need windows newline [{*.sht,*.html,*.shtm,*.shtml,*.htm}]
[*.{bat, cmd}] indent_style=space
end_of_line = crlf indent_size=4
[*.json]
indent_style=space
indent_size=2
[*.properties]
indent_style=space
indent_size=4
[.editorconfig]
indent_style=space
indent_size=4
[{*.pyw,*.py}]
indent_style=space
indent_size=4
[{*.yml,*.yaml}]
indent_style=space
indent_size=2
[{*.markdown,*.md,*.mkd}]
indent_style=space
indent_size=4

View File

@ -9,6 +9,7 @@
<option name="TAB_SIZE" value="2" /> <option name="TAB_SIZE" value="2" />
</value> </value>
</option> </option>
<option name="LINE_SEPARATOR" value="&#10;" />
<option name="RIGHT_MARGIN" value="100" /> <option name="RIGHT_MARGIN" value="100" />
<AndroidXmlCodeStyleSettings> <AndroidXmlCodeStyleSettings>
<option name="USE_CUSTOM_SETTINGS" value="true" /> <option name="USE_CUSTOM_SETTINGS" value="true" />

View File

@ -457,6 +457,10 @@ play {
resolutionStrategy = "fail" resolutionStrategy = "fail"
} }
ktlint{
android = true
}
class TestDroidUpload extends TestServer { class TestDroidUpload extends TestServer {
def buildNumber = System.getenv("TRAVIS_BUILD_NUMBER") def buildNumber = System.getenv("TRAVIS_BUILD_NUMBER")
def API_KEY = System.getenv("PUBLIC_TESTDROID_API_KEY") def API_KEY = System.getenv("PUBLIC_TESTDROID_API_KEY")
@ -497,3 +501,10 @@ class TestDroidUpload extends TestServer {
return true return true
} }
} }
apply from: "${rootDir}/team-props/git-hooks.gradle"
afterEvaluate {
android.applicationVariants.all { variant ->
variant.preBuild.dependsOn(installGitHooks)
}
}

View File

@ -0,0 +1,26 @@
static def isLinuxOrMacOs() {
def osName = System.getProperty('os.name').toLowerCase(Locale.ROOT)
return osName.contains('linux') || osName.contains('mac os') || osName.contains('macos')
}
task copyGitHooks(type: Copy) {
description 'Copies the git hooks from team-props/git-hooks to the .git folder.'
from("${rootDir}/team-props/git-hooks/") {
include '**/*.sh'
rename '(.*).sh', '$1'
}
into "${rootDir}/.git/hooks"
}
task installGitHooks(type: Exec) {
description 'Installs the pre-commit git hooks from team-props/git-hooks.'
group 'git hooks'
workingDir rootDir
commandLine 'chmod'
args '-R', '+x', '.git/hooks/'
onlyIf { isLinuxOrMacOs() }
dependsOn copyGitHooks
doLast {
logger.info('Git hook installed successfully.')
}
}

View File

@ -0,0 +1,16 @@
#!/bin/sh
echo "Running formatter..."
# Format code using KtLint, analyze with KtLint & Lint
./gradlew app:ktlintKiwixDebugFormat app:ktlintKiwixDebugCheck app:lintKiwixDebug --daemon
status=$?
if [ "$status" = 0 ] ; then
echo "Static analysis found no problems."
exit 0
else
echo 1>&2 "Static analysis found violations it could not fix."
exit 1
fi