Skip to content

Commit

Permalink
Enable verification configuration through the CLI
Browse files Browse the repository at this point in the history
  • Loading branch information
MrHadiSatrio authored and nathan3d committed Nov 21, 2024
1 parent f805d92 commit c63bcf8
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 4 deletions.
11 changes: 10 additions & 1 deletion ruler-cli/src/main/java/com/spotify/ruler/cli/RulerCli.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import com.github.ajalt.clikt.parameters.options.multiple
import com.github.ajalt.clikt.parameters.options.option
import com.github.ajalt.clikt.parameters.options.required
import com.github.ajalt.clikt.parameters.types.file
import com.github.ajalt.clikt.parameters.types.long
import com.spotify.ruler.common.BaseRulerTask
import com.spotify.ruler.common.FEATURE_NAME
import com.spotify.ruler.common.apk.ApkCreator
Expand All @@ -40,6 +41,7 @@ import com.spotify.ruler.common.models.AppInfo
import com.spotify.ruler.common.models.DeviceSpec
import com.spotify.ruler.common.models.RulerConfig
import com.spotify.ruler.common.sanitizer.ClassNameSanitizer
import com.spotify.ruler.common.veritication.VerificationConfig
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
Expand Down Expand Up @@ -69,6 +71,8 @@ class RulerCli : CliktCommand(), BaseRulerTask {
private val appInfoFile by option().file().required()
private val additionalEntriesFile by option().file()
private val ignoreFile by option().multiple()
private val downloadSizeThreshold by option().long().default(Long.MAX_VALUE)
private val installSizeThreshold by option().long().default(Long.MAX_VALUE)

override fun print(content: String) = echo(content)

Expand All @@ -89,6 +93,9 @@ class RulerCli : CliktCommand(), BaseRulerTask {
val additionalEntries =
additionalEntriesFile?.let { Json.decodeFromStream<List<ApkEntry.Default>>(it.inputStream()) }
logger.log(Level.INFO, "Got ${additionalEntries?.size} additional entries")

val verificationConfig = VerificationConfig(downloadSizeThreshold, installSizeThreshold)

RulerConfig(
projectPath = projectPath,
apkFilesMap = apkFiles(projectPath, deviceSpec),
Expand All @@ -101,7 +108,7 @@ class RulerCli : CliktCommand(), BaseRulerTask {
omitFileBreakdown = omitFileBreakdown,
additionalEntries = additionalEntries,
ignoredFiles = ignoreFile,
verificationConfig = null
verificationConfig = verificationConfig
)
}

Expand Down Expand Up @@ -182,6 +189,8 @@ class RulerCli : CliktCommand(), BaseRulerTask {
Using AAPT2: ${aapt2Tool?.path}
Using Bloaty: ${bloatyTool?.path}
Writing reports to: ${reportDir.path}
Verifying download size under: $downloadSizeThreshold
Verifying install size under: $installSizeThreshold
""".trimIndent()
)
super.run()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ interface BaseRulerTask {
val ownershipInfo = getOwnershipInfo() // Get ownership information for all components
generateReports(components, featureFiles, ownershipInfo)

val verificator = rulerConfig.verificationConfig?.let(::Verificator)
verificator?.verify(components.values.flatten())
val verificator = rulerConfig.verificationConfig.let(::Verificator)
verificator.verify(components.values.flatten())
}

private fun getFilesFromBundle(): Map<String, List<AppFile>> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@ data class RulerConfig(
val omitFileBreakdown: Boolean,
val additionalEntries: List<ApkEntry.Default>?,
val ignoredFiles: List<String>,
val verificationConfig: VerificationConfig?
val verificationConfig: VerificationConfig
)

0 comments on commit c63bcf8

Please sign in to comment.