mirror of
https://github.com/revanced/revanced-cli.git
synced 2025-04-29 22:24:36 +02:00
fix: Group mount
and install
options into an argument group (#364)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
parent
a0189aeaee
commit
0c53a2d1d7
@ -115,21 +115,27 @@ internal object PatchCommand : Runnable {
|
||||
this.outputFilePath = outputFilePath?.absoluteFile
|
||||
}
|
||||
|
||||
@CommandLine.Option(
|
||||
names = ["-i", "--install"],
|
||||
description = ["Serial of the ADB device to install to. If not specified, the first connected device will be used."],
|
||||
// Empty string to indicate that the first connected device should be used.
|
||||
fallbackValue = "",
|
||||
arity = "0..1",
|
||||
)
|
||||
private var deviceSerial: String? = null
|
||||
@ArgGroup(exclusive = false, multiplicity = "0..1")
|
||||
internal var installation: Installation? = null
|
||||
|
||||
@CommandLine.Option(
|
||||
names = ["--mount"],
|
||||
description = ["Install the patched APK file by mounting."],
|
||||
showDefaultValue = ALWAYS,
|
||||
)
|
||||
private var mount: Boolean = false
|
||||
internal class Installation {
|
||||
@CommandLine.Option(
|
||||
names = ["-i", "--install"],
|
||||
required = true,
|
||||
description = ["Serial of the ADB device to install to. If not specified, the first connected device will be used."],
|
||||
fallbackValue = "", // Empty string is used to select the first of connected devices.
|
||||
arity = "0..1",
|
||||
)
|
||||
internal var deviceSerial: String? = null
|
||||
|
||||
@CommandLine.Option(
|
||||
names = ["--mount"],
|
||||
required = false,
|
||||
description = ["Install the patched APK file by mounting."],
|
||||
showDefaultValue = ALWAYS,
|
||||
)
|
||||
internal var mount: Boolean = false
|
||||
}
|
||||
|
||||
@CommandLine.Option(
|
||||
names = ["--keystore"],
|
||||
@ -245,11 +251,11 @@ internal object PatchCommand : Runnable {
|
||||
keyStoreFilePath ?: outputFilePath.parentFile
|
||||
.resolve("${outputFilePath.nameWithoutExtension}.keystore")
|
||||
|
||||
val installer = if (deviceSerial != null) {
|
||||
val deviceSerial = deviceSerial!!.ifEmpty { null }
|
||||
val installer = if (installation?.deviceSerial != null) {
|
||||
val deviceSerial = installation?.deviceSerial!!.ifEmpty { null }
|
||||
|
||||
try {
|
||||
if (mount) {
|
||||
if (installation?.mount == true) {
|
||||
AdbRootInstaller(deviceSerial)
|
||||
} else {
|
||||
AdbInstaller(deviceSerial)
|
||||
@ -332,7 +338,7 @@ internal object PatchCommand : Runnable {
|
||||
apk.copyTo(temporaryFilesPath.resolve(apk.name), overwrite = true).apply {
|
||||
patcherResult.applyTo(this)
|
||||
}.let { patchedApkFile ->
|
||||
if (!mount) {
|
||||
if (installation?.mount != true) {
|
||||
ApkUtils.signApk(
|
||||
patchedApkFile,
|
||||
outputFilePath,
|
||||
@ -355,7 +361,7 @@ internal object PatchCommand : Runnable {
|
||||
|
||||
// region Install.
|
||||
|
||||
deviceSerial?.let {
|
||||
installation?.deviceSerial?.let {
|
||||
runBlocking {
|
||||
when (val result = installer!!.install(Installer.Apk(outputFilePath, packageName))) {
|
||||
RootInstallerResult.FAILURE -> logger.severe("Failed to mount the patched APK file")
|
||||
|
Loading…
x
Reference in New Issue
Block a user