Skip to content

Commit

Permalink
Added Ubuntu Compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
Bitmap-Ubuntu committed Mar 18, 2024
1 parent 47fea60 commit b2bf1e8
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 34 deletions.
44 changes: 31 additions & 13 deletions src/jvmMain/kotlin/command/CommandBuilder.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package command

import utils.Log
import utils.SigningMode
import utils.Utils

class CommandBuilder {
private var bundletoolPath: String = ""
Expand Down Expand Up @@ -39,13 +41,13 @@ class CommandBuilder {
fun getAdbVerifyCommand(): String {
val (forVerify, path) = adbVerifyCommandExecute
if (forVerify) {
return "\"${path}\" version"
return if (Utils.isWindowsOS()) "\"${path}\" version" else "$path version"
}
return ""
}

fun getAdbFetchCommand(adbPath: String): String {
return "\"${adbPath}\" devices"
return if (Utils.isWindowsOS()) "\"${adbPath}\" devices" else "$adbPath devices"
}

fun validateAndGetCommand(): Pair<String, Boolean> {
Expand All @@ -69,23 +71,38 @@ class CommandBuilder {

private fun getCommand(): String {
val commandBuilder = StringBuilder()
commandBuilder.append("java -jar \"${bundletoolPath}\" build-apks ")
if (Utils.isWindowsOS()) {
commandBuilder.append("java -jar \"$bundletoolPath\" build-apks ")
if (isAapt2PathEnabled) {
commandBuilder.append("--aapt2=\"$aapt2Path\" ")
}
commandBuilder.append(
"--bundle=\"${aabFilePath.first}${aabFilePath.second}\" --output=\"${aabFilePath.first}${
aabFilePath.second.split(
"."
)[0]
}.apks\" "
)
} else {
commandBuilder.append("java -jar $bundletoolPath build-apks ")
if (isAapt2PathEnabled) {
commandBuilder.append("--aapt2=$aapt2Path ")
}
commandBuilder.append(
"--bundle=${aabFilePath.first}${aabFilePath.second} --output=${aabFilePath.first}${
aabFilePath.second.split(
"."
)[0]
}.apks "
)
}

if (isUniversalMode) {
commandBuilder.append("--mode=universal ")
}
if (isOverwrite) {
commandBuilder.append("--overwrite ")
}
if (isAapt2PathEnabled) {
commandBuilder.append("--aapt2=\"$aapt2Path\" ")
}
commandBuilder.append(
"--bundle=\"${aabFilePath.first}${aabFilePath.second}\" --output=\"${aabFilePath.first}${
aabFilePath.second.split(
"."
)[0]
}.apks\" "
)

if (signingMode == SigningMode.RELEASE) {
commandBuilder.append("--ks=$keyStorePath --ks-pass=pass:$keyStorePassword --ks-key-alias=$keyAlias --key-pass=pass:$keyPassword ")
Expand All @@ -95,6 +112,7 @@ class CommandBuilder {
commandBuilder.append("--device-id=$adbSerialId ")
}

Log.i("COMMAND_BUILDER -> ${commandBuilder.toString()}")
return commandBuilder.toString()
}
}
80 changes: 59 additions & 21 deletions src/jvmTest/kotlin/command/CommandBuilderTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package command
import org.junit.Assert.assertEquals
import org.junit.Test
import utils.SigningMode
import utils.Utils

class CommandBuilderTest {

Expand Down Expand Up @@ -57,10 +58,17 @@ class CommandBuilderTest {
.keyPassword("keyPassword")
.isUniversalMode(false).validateAndGetCommand()
println(result)
assertEquals(
"java -jar \"bundletool.jar\" build-apks --bundle=\"/path/to/file.aab\" --output=\"/path/to/file.apks\" --ks=/path/to/keystore.jks --ks-pass=pass:keystorePassword --ks-key-alias=keyAlias --key-pass=pass:keyPassword ",
result.first
)
if (Utils.isWindowsOS()) {
assertEquals(
"java -jar \"bundletool.jar\" build-apks --bundle=\"/path/to/file.aab\" --output=\"/path/to/file.apks\" --ks=/path/to/keystore.jks --ks-pass=pass:keystorePassword --ks-key-alias=keyAlias --key-pass=pass:keyPassword ",
result.first
)
} else {
assertEquals(
"java -jar bundletool.jar build-apks --bundle=/path/to/file.aab --output=/path/to/file.apks --ks=/path/to/keystore.jks --ks-pass=pass:keystorePassword --ks-key-alias=keyAlias --key-pass=pass:keyPassword ",
result.first
)
}
assertEquals(true, result.second)
}

Expand All @@ -73,10 +81,17 @@ class CommandBuilderTest {
.isUniversalMode(false)
.validateAndGetCommand()
println(result)
assertEquals(
"java -jar \"bundletool.jar\" build-apks --bundle=\"/path/to/file.aab\" --output=\"/path/to/file.apks\" ",
result.first
)
if (Utils.isWindowsOS()) {
assertEquals(
"java -jar \"bundletool.jar\" build-apks --bundle=\"/path/to/file.aab\" --output=\"/path/to/file.apks\" ",
result.first
)
} else {
assertEquals(
"java -jar bundletool.jar build-apks --bundle=/path/to/file.aab --output=/path/to/file.apks ",
result.first
)
}
assertEquals(true, result.second)
}

Expand All @@ -85,7 +100,9 @@ class CommandBuilderTest {
val result = CommandBuilder()
.verifyAdbPath(true, "/path/to/adb")
.getAdbVerifyCommand()
assertEquals("\"/path/to/adb\" version", result)
if (Utils.isWindowsOS()) assertEquals("\"/path/to/adb\" version", result)
else assertEquals("/path/to/adb version", result)

}

@Test
Expand All @@ -96,10 +113,17 @@ class CommandBuilderTest {
.isUniversalMode(true)
.validateAndGetCommand()
println(result)
assertEquals(
"java -jar \"bundletool.jar\" build-apks --mode=universal --bundle=\"/path/to/file.aab\" --output=\"/path/to/file.apks\" ",
result.first
)
if (Utils.isWindowsOS()) {
assertEquals(
"java -jar \"bundletool.jar\" build-apks --bundle=\"/path/to/file.aab\" --output=\"/path/to/file.apks\" --mode=universal ",
result.first
)
} else {
assertEquals(
"java -jar bundletool.jar build-apks --bundle=/path/to/file.aab --output=/path/to/file.apks --mode=universal ",
result.first
)
}
assertEquals(true, result.second)
}

Expand All @@ -111,10 +135,17 @@ class CommandBuilderTest {
.isOverwrite(true)
.isUniversalMode(false).validateAndGetCommand()
println(result)
assertEquals(
"java -jar \"bundletool.jar\" build-apks --overwrite --bundle=\"/path/to/file.aab\" --output=\"/path/to/file.apks\" ",
result.first
)
if (Utils.isWindowsOS()) {
assertEquals(
"java -jar \"bundletool.jar\" build-apks --bundle=\"/path/to/file.aab\" --output=\"/path/to/file.apks\" --overwrite ",
result.first
)
} else {
assertEquals(
"java -jar bundletool.jar build-apks --bundle=/path/to/file.aab --output=/path/to/file.apks --overwrite ",
result.first
)
}
assertEquals(true, result.second)
}

Expand Down Expand Up @@ -146,10 +177,17 @@ class CommandBuilderTest {
.adbSerialId("RZCWC0EZLEH")
.validateAndGetCommand()
println(result)
assertEquals(
"java -jar \"bundletool.jar\" build-apks --bundle=\"/path/to/file.aab\" --output=\"/path/to/file.apks\" --device-id=RZCWC0EZLEH ",
result.first
)
if (Utils.isWindowsOS()) {
assertEquals(
"java -jar \"bundletool.jar\" build-apks --bundle=\"/path/to/file.aab\" --output=\"/path/to/file.apks\" --device-id=RZCWC0EZLEH ",
result.first
)
} else {
assertEquals(
"java -jar bundletool.jar build-apks --bundle=/path/to/file.aab --output=/path/to/file.apks --device-id=RZCWC0EZLEH ",
result.first
)
}
assertEquals(true, result.second)
}
}

0 comments on commit b2bf1e8

Please sign in to comment.