@@ -24,20 +24,24 @@ class BazelQueryService(
2424) : KoinComponent {
2525 private val logger: Logger by inject()
2626
27- suspend fun query (query : String , useCquery : Boolean = false): List <Build .Target > {
27+ suspend fun query (
28+ query : String ,
29+ useCquery : Boolean = false,
30+ supressFailure : Boolean = false)
31+ : List <Build .Target > {
2832 // Unfortunately, there is still no direct way to tell if a target is compatible or not with the proto output
2933 // by itself. So we do an extra cquery with the trick at
3034 // https://bazel.build/extending/platforms#cquery-incompatible-target-detection to first find all compatible
3135 // targets.
3236 val compatibleTargetSet =
3337 if (useCquery) {
34- runQuery(query, useCquery = true , outputCompatibleTargets = true ).useLines {
38+ runQuery(query, useCquery = true , outputCompatibleTargets = true , supressFailure = supressFailure ).useLines {
3539 it.filter { it.isNotBlank() }.toSet()
3640 }
3741 } else {
3842 emptySet()
3943 }
40- val outputFile = runQuery(query, useCquery)
44+ val outputFile = runQuery(query, useCquery, supressFailure = supressFailure )
4145
4246 val targets = outputFile.inputStream().buffered().use { proto ->
4347 if (useCquery) {
@@ -58,7 +62,12 @@ class BazelQueryService(
5862 }
5963
6064 @OptIn(ExperimentalCoroutinesApi ::class )
61- private suspend fun runQuery (query : String , useCquery : Boolean , outputCompatibleTargets : Boolean = false): File {
65+ private suspend fun runQuery (
66+ query : String ,
67+ useCquery : Boolean ,
68+ outputCompatibleTargets : Boolean = false,
69+ supressFailure : Boolean = false
70+ ): File {
6271 val queryFile = Files .createTempFile(null , " .txt" ).toFile()
6372 queryFile.deleteOnExit()
6473 val outputFile = Files .createTempFile(null , " .bin" ).toFile()
@@ -139,7 +148,9 @@ class BazelQueryService(
139148 )
140149 }
141150
142- if (result.resultCode != 0 ) throw RuntimeException (" Bazel query failed, exit code ${result.resultCode} " )
151+ if (! supressFailure && result.resultCode != 0 ) {
152+ throw RuntimeException (" Bazel query failed, exit code ${result.resultCode} " )
153+ }
143154 return outputFile
144155 }
145156}
0 commit comments