aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/quality.gradle17
-rw-r--r--config/quality/checkstyle/checkstyle.xml30
-rw-r--r--config/quality/checkstyle/suppressions.xml23
-rw-r--r--config/translations.gradle83
4 files changed, 153 insertions, 0 deletions
diff --git a/config/quality.gradle b/config/quality.gradle
new file mode 100644
index 0000000..2df9dcb
--- /dev/null
+++ b/config/quality.gradle
@@ -0,0 +1,17 @@
+apply plugin: 'checkstyle'
+
+check.dependsOn 'checkstyle'
+
+task checkstyle(type: Checkstyle) {
+ configFile file("${project.rootDir}/config/quality/checkstyle/checkstyle.xml")
+ configProperties.checkstyleSuppressionsPath = file("${project.rootDir}/config/quality/checkstyle/suppressions.xml").absolutePath
+
+ source 'src/main/java'
+ include 'org/connectbot/**/*.java'
+ exclude '**/gen/**'
+
+ def configProps = ['proj.module.dir': projectDir.absolutePath]
+ configProperties configProps
+
+ classpath = files()
+}
diff --git a/config/quality/checkstyle/checkstyle.xml b/config/quality/checkstyle/checkstyle.xml
new file mode 100644
index 0000000..105f707
--- /dev/null
+++ b/config/quality/checkstyle/checkstyle.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!DOCTYPE module PUBLIC
+ "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
+ "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
+<module name="Checker">
+ <module name="TreeWalker">
+ <property name="fileExtensions" value="java"/>
+ <module name="RegexpSinglelineJava">
+ <property name="format" value="^\t* +\t*\S"/>
+ <property name="message"
+ value="Line has leading space characters; indentation should be performed with tabs only."/>
+ <property name="ignoreComments" value="true"/>
+ </module>
+
+ <module name="AvoidStarImport" />
+ <module name="IllegalImport" />
+ <module name="RedundantImport" />
+ <module name="UnusedImports" />
+ <module name="NoWhitespaceAfter">
+ <property name="tokens" value="BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,UNARY_PLUS" />
+ </module>
+ <module name="NoWhitespaceBefore" />
+ <module name="ParenPad" />
+ <module name="TypecastParenPad" />
+ <module name="WhitespaceAfter" />
+ <module name="WhitespaceAround">
+ <property name="allowEmptyMethods" value="true" />
+ </module>
+ </module>
+</module>
diff --git a/config/quality/checkstyle/suppressions.xml b/config/quality/checkstyle/suppressions.xml
new file mode 100644
index 0000000..e36b8a9
--- /dev/null
+++ b/config/quality/checkstyle/suppressions.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+ ~ ConnectBot: simple, powerful, open-source SSH client for Android
+ ~ Copyright 2015 Kenny Root, Jeffrey Sharkey
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<!DOCTYPE suppressions PUBLIC
+ "-//Puppy Crawl//DTD Suppressions 1.1//EN"
+ "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
+
+<suppressions>
+</suppressions> \ No newline at end of file
diff --git a/config/translations.gradle b/config/translations.gradle
new file mode 100644
index 0000000..14a2f12
--- /dev/null
+++ b/config/translations.gradle
@@ -0,0 +1,83 @@
+/*
+ * ConnectBot: simple, powerful, open-source SSH client for Android
+ * Copyright 2015 Kenny Root, Jeffrey Sharkey
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+def localeDir = file('locale')
+def launchpadImportBasename = 'launchpad-import'
+def launchpadExportFile = getRootProject().file('launchpad-export.tar.gz')
+
+def android2poExec = 'a2po'
+def android2poArgs = ['--groups', 'strings',
+ '--android', getProjectDir().getPath() + '/src/main/res',
+ '--gettext', localeDir,
+ '--template', 'fortune/fortune.pot',
+ '--layout', 'fortune/fortune-%(locale)s.po']
+
+task ensureLocalDirExists {
+ localeDir.mkdirs()
+}
+
+task untarTranslations(type: Copy) {
+ from tarTree(resources.gzip(launchpadExportFile))
+ into localeDir
+}
+
+task translationsImport(type: Exec, dependsOn: 'untarTranslations') {
+ description "Import translations into ConnectBot from Launchpad's export function"
+ executable = android2poExec
+ args = ['import'] + android2poArgs
+
+ // Save the output to print out.
+ standardOutput = new ByteArrayOutputStream()
+ errorOutput = new ByteArrayOutputStream()
+ ext.output = {
+ return standardOutput.toString()
+ }
+ ext.errs = {
+ return errorOutput.toString()
+ }
+
+ doLast {
+ println()
+ println("Translations import output:")
+ println("${translationsImport.output}")
+ println("${translationsImport.errs}")
+ }
+}
+
+task exportFromAndroid(type: Exec) {
+ executable = android2poExec
+ args = ['export'] + android2poArgs
+
+ // Save the output to print out.
+ standardOutput = new ByteArrayOutputStream()
+ ext.output = {
+ return standardOutput.toString()
+ }
+}
+
+task translationsExport(type: Tar, dependsOn: 'exportFromAndroid') {
+ description "Export translations from ConnectBot in a format suitable to import into Launchpad"
+ baseName = launchpadImportBasename
+ from localeDir
+ compression = Compression.GZIP
+ doLast {
+ println()
+ println('Import file into Launchpad:')
+ println(getArchivePath())
+ println()
+ }
+}