Skip to content

Commit 7be9a44

Browse files
authored
Update rules_kotlin to 2.1.0 (#67)
1 parent aaee09e commit 7be9a44

17 files changed

+261
-237
lines changed

MODULE.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module(
66

77
bazel_dep(name = "rules_java", version = "8.6.3")
88
bazel_dep(name = "rules_jvm_external", version = "5.3")
9-
bazel_dep(name = "rules_kotlin", version = "1.9.5")
9+
bazel_dep(name = "rules_kotlin", version = "2.1.0")
1010
bazel_dep(name = "bazel_skylib", version = "1.7.1")
1111
bazel_dep(name = "platforms", version = "0.0.8")
1212

src/cli/AndroidLintAction.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import java.nio.file.Files
66
import kotlin.system.exitProcess
77

88
object AndroidLintAction {
9-
109
@JvmStatic
1110
fun main(args: Array<String>) {
1211
val worker = Worker.fromArgs(args, AndroidLintExecutor())
@@ -15,7 +14,10 @@ object AndroidLintAction {
1514
}
1615

1716
private class AndroidLintExecutor : Worker.WorkRequestCallback {
18-
override fun processWorkRequest(args: List<String>, printStream: PrintStream): Int {
17+
override fun processWorkRequest(
18+
args: List<String>,
19+
printStream: PrintStream,
20+
): Int {
1921
val workingDirectory = Files.createTempDirectory("rules")
2022

2123
try {

src/cli/AndroidLintActionArgs.kt

Lines changed: 87 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import java.nio.file.Paths
1010
internal class AndroidLintActionArgs(
1111
parser: ArgParser,
1212
) {
13-
1413
private val argsParserPathTransformer: String.() -> Path = {
1514
Paths.get(this)
1615
}
@@ -26,10 +25,11 @@ internal class AndroidLintActionArgs(
2625
help = "",
2726
)
2827

29-
val androidHome: String? by parser.storing(
30-
names = arrayOf("--android-home"),
31-
help = "The relative location of Android home",
32-
).default { null }
28+
val androidHome: String? by parser
29+
.storing(
30+
names = arrayOf("--android-home"),
31+
help = "The relative location of Android home",
32+
).default { null }
3333

3434
val srcs: List<Path> by parser.adding(
3535
names = arrayOf("--src"),
@@ -43,66 +43,77 @@ internal class AndroidLintActionArgs(
4343
transform = argsParserPathTransformer,
4444
)
4545

46-
val resources: List<Path> by parser.adding(
47-
names = arrayOf("--resource"),
48-
help = "",
49-
transform = argsParserPathTransformer,
50-
).default { emptyList() }
51-
52-
val androidManifest: Path? by parser.storing(
53-
names = arrayOf("--android-manifest"),
54-
help = "",
55-
transform = argsParserPathTransformer,
56-
).default { null }
57-
58-
val baselineFile: Path? by parser.storing(
59-
names = arrayOf("--baseline-file"),
60-
help = "",
61-
transform = argsParserPathTransformer,
62-
).default { null }
63-
64-
val config: Path? by parser.storing(
65-
names = arrayOf("--config-file"),
66-
help = "",
67-
transform = argsParserPathTransformer,
68-
).default { null }
69-
70-
val customChecks: List<Path> by parser.adding(
71-
names = arrayOf("--custom-rule"),
72-
help = "",
73-
transform = argsParserPathTransformer,
74-
).default { emptyList() }
75-
76-
val classpath: List<Path> by parser.adding(
77-
names = arrayOf("--classpath"),
78-
help = "",
79-
transform = argsParserPathTransformer,
80-
).default { emptyList() }
81-
82-
val autofix: Boolean by parser.flagging(
83-
names = arrayOf("--autofix"),
84-
help = "TODO Not supported yet",
85-
).default { false }
86-
87-
val regenerateBaselineFile: Boolean by parser.flagging(
88-
names = arrayOf("--regenerate-baseline-files"),
89-
help = "",
90-
).default { false }
91-
92-
val warningsAsErrors: Boolean by parser.flagging(
93-
names = arrayOf("--warnings-as-errors"),
94-
help = "",
95-
).default { false }
96-
97-
val enableChecks: List<String> by parser.adding(
98-
names = arrayOf("--enable-check"),
99-
help = "",
100-
).default { emptyList() }
101-
102-
val disableChecks: List<String> by parser.adding(
103-
names = arrayOf("--disable-check"),
104-
help = "",
105-
).default { emptyList() }
46+
val resources: List<Path> by parser
47+
.adding(
48+
names = arrayOf("--resource"),
49+
help = "",
50+
transform = argsParserPathTransformer,
51+
).default { emptyList() }
52+
53+
val androidManifest: Path? by parser
54+
.storing(
55+
names = arrayOf("--android-manifest"),
56+
help = "",
57+
transform = argsParserPathTransformer,
58+
).default { null }
59+
60+
val baselineFile: Path? by parser
61+
.storing(
62+
names = arrayOf("--baseline-file"),
63+
help = "",
64+
transform = argsParserPathTransformer,
65+
).default { null }
66+
67+
val config: Path? by parser
68+
.storing(
69+
names = arrayOf("--config-file"),
70+
help = "",
71+
transform = argsParserPathTransformer,
72+
).default { null }
73+
74+
val customChecks: List<Path> by parser
75+
.adding(
76+
names = arrayOf("--custom-rule"),
77+
help = "",
78+
transform = argsParserPathTransformer,
79+
).default { emptyList() }
80+
81+
val classpath: List<Path> by parser
82+
.adding(
83+
names = arrayOf("--classpath"),
84+
help = "",
85+
transform = argsParserPathTransformer,
86+
).default { emptyList() }
87+
88+
val autofix: Boolean by parser
89+
.flagging(
90+
names = arrayOf("--autofix"),
91+
help = "TODO Not supported yet",
92+
).default { false }
93+
94+
val regenerateBaselineFile: Boolean by parser
95+
.flagging(
96+
names = arrayOf("--regenerate-baseline-files"),
97+
help = "",
98+
).default { false }
99+
100+
val warningsAsErrors: Boolean by parser
101+
.flagging(
102+
names = arrayOf("--warnings-as-errors"),
103+
help = "",
104+
).default { false }
105+
106+
val enableChecks: List<String> by parser
107+
.adding(
108+
names = arrayOf("--enable-check"),
109+
help = "",
110+
).default { emptyList() }
111+
112+
val disableChecks: List<String> by parser
113+
.adding(
114+
names = arrayOf("--disable-check"),
115+
help = "",
116+
).default { emptyList() }
106117

107118
val compileSdkVersion: String by parser.storing(
108119
names = arrayOf("--compile-sdk-version"),
@@ -119,20 +130,21 @@ internal class AndroidLintActionArgs(
119130
help = "",
120131
)
121132

122-
val enableCheckDependencies: Boolean by parser.flagging(
123-
names = arrayOf("--enable-check-dependencies"),
124-
help = "",
125-
).default { false }
133+
val enableCheckDependencies: Boolean by parser
134+
.flagging(
135+
names = arrayOf("--enable-check-dependencies"),
136+
help = "",
137+
).default { false }
126138

127139
companion object {
128-
129140
internal fun parseArgs(args: List<String>): AndroidLintActionArgs {
130141
// TODO Need to handle the --flagfile argument here
131-
val unwrappedArgs: Array<String> = if (args.size == 1 && args[0].startsWith("@")) {
132-
File(args[0].removePrefix("@")).readLines(Charset.defaultCharset()).toTypedArray()
133-
} else {
134-
args.toTypedArray()
135-
}
142+
val unwrappedArgs: Array<String> =
143+
if (args.size == 1 && args[0].startsWith("@")) {
144+
File(args[0].removePrefix("@")).readLines(Charset.defaultCharset()).toTypedArray()
145+
} else {
146+
args.toTypedArray()
147+
}
136148

137149
return AndroidLintActionArgs(ArgParser(unwrappedArgs))
138150
}

src/cli/AndroidLintCliInvoker.kt

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,18 @@ import kotlin.io.path.pathString
1010
class AndroidLintCliInvoker(
1111
classLoader: ClassLoader,
1212
) {
13-
1413
private val mainClass = Class.forName("com.android.tools.lint.Main", true, classLoader)
1514
private val cliFlags = classLoader.loadClass("com.android.tools.lint.LintCliFlags")
16-
private val mainInstance = mainClass
17-
.getDeclaredConstructor()
18-
.newInstance()
19-
private val flagsInstance = mainClass.getDeclaredField("flags").apply {
20-
isAccessible = true
21-
}.get(mainInstance)
15+
private val mainInstance =
16+
mainClass
17+
.getDeclaredConstructor()
18+
.newInstance()
19+
private val flagsInstance =
20+
mainClass
21+
.getDeclaredField("flags")
22+
.apply {
23+
isAccessible = true
24+
}.get(mainInstance)
2225

2326
/*
2427
* Exit Status:
@@ -37,15 +40,15 @@ class AndroidLintCliInvoker(
3740
}
3841

3942
fun setCheckDependencies(enableCheckDependencies: Boolean) {
40-
val setCheckDependenciesMethod = cliFlags.getDeclaredMethod(
41-
"setCheckDependencies",
42-
Boolean::class.java,
43-
)
43+
val setCheckDependenciesMethod =
44+
cliFlags.getDeclaredMethod(
45+
"setCheckDependencies",
46+
Boolean::class.java,
47+
)
4448
setCheckDependenciesMethod.invoke(flagsInstance, enableCheckDependencies)
4549
}
4650

4751
companion object {
48-
4952
const val ERRNO_SUCCESS = 0
5053
const val ERRNO_ERRORS = 1
5154
const val ERRNO_USAGE = 2
@@ -64,12 +67,14 @@ class AndroidLintCliInvoker(
6467
"Error: At least one jar must be provided when calling createUsingJars"
6568
}
6669

67-
val classpath = jars.map { jar ->
68-
require(jar.isRegularFile() && jar.exists()) {
69-
"Error: The provided jar does not exist!: ${jar.pathString}"
70-
}
71-
URL("file:${jar.pathString}")
72-
}.toTypedArray()
70+
val classpath =
71+
jars
72+
.map { jar ->
73+
require(jar.isRegularFile() && jar.exists()) {
74+
"Error: The provided jar does not exist!: ${jar.pathString}"
75+
}
76+
URL("file:${jar.pathString}")
77+
}.toTypedArray()
7378

7479
return AndroidLintCliInvoker(classLoader = URLClassLoader(classpath, parentClassloader))
7580
}

src/cli/AndroidLintProject.kt

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,14 @@ internal fun createProjectXMLString(
3131
projectElement.appendChild(it)
3232
}
3333

34-
val moduleElement = document.createElement("module").also {
35-
it.setAttribute("name", moduleName)
36-
it.setAttribute("android", if (androidManifest != null) "true" else "false")
37-
// it.setAttribute("library", "false")
38-
// it.setAttribute("compile-sdk-version", "get-actual-value-here")
39-
projectElement.appendChild(it)
40-
}
34+
val moduleElement =
35+
document.createElement("module").also {
36+
it.setAttribute("name", moduleName)
37+
it.setAttribute("android", if (androidManifest != null) "true" else "false")
38+
// it.setAttribute("library", "false")
39+
// it.setAttribute("compile-sdk-version", "get-actual-value-here")
40+
projectElement.appendChild(it)
41+
}
4142

4243
customLintChecks.forEach { jar ->
4344
document.createElement("lint-checks").also {
@@ -83,10 +84,12 @@ internal fun createProjectXMLString(
8384
moduleElement.appendChild(element)
8485
}
8586

86-
return StringWriter().apply {
87-
val transformer = TransformerFactory.newInstance().newTransformer()
88-
transformer.setOutputProperty(OutputKeys.INDENT, "yes")
89-
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2")
90-
transformer.transform(DOMSource(document), StreamResult(this))
91-
}.buffer.toString()
87+
return StringWriter()
88+
.apply {
89+
val transformer = TransformerFactory.newInstance().newTransformer()
90+
transformer.setOutputProperty(OutputKeys.INDENT, "yes")
91+
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2")
92+
transformer.transform(DOMSource(document), StreamResult(this))
93+
}.buffer
94+
.toString()
9295
}

0 commit comments

Comments
 (0)