Normalize Paths (#1245)

* Normalize Paths

* Formatting

* Different format
This commit is contained in:
Mitchell Syer
2025-01-23 09:36:10 -05:00
committed by GitHub
parent fb8f20f31a
commit 0b192cfa52
10 changed files with 150 additions and 121 deletions

View File

@@ -48,6 +48,10 @@ import java.io.InputStream
import java.util.zip.ZipEntry
import java.util.zip.ZipInputStream
import java.util.zip.ZipOutputStream
import kotlin.io.path.Path
import kotlin.io.path.absolutePathString
import kotlin.io.path.outputStream
import kotlin.io.path.relativeTo
object Extension {
private val logger = KotlinLogging.logger {}
@@ -77,17 +81,20 @@ object Extension {
apkName: String,
): Int =
installAPK(true) {
val savePath = "${applicationDirs.extensionsRoot}/$apkName"
val rootPath = Path(applicationDirs.extensionsRoot)
val downloadedFile = rootPath.resolve(apkName).normalize()
check(downloadedFile.startsWith(rootPath) && downloadedFile.parent == rootPath) {
"File '$apkName' is not a valid extension file"
}
logger.debug { "Saving apk at $apkName" }
// download apk file
val downloadedFile = File(savePath)
downloadedFile.sink().buffer().use { sink ->
downloadedFile.outputStream().sink().buffer().use { sink ->
inputStream.source().use { source ->
sink.writeAll(source)
sink.flush()
}
}
savePath
downloadedFile.absolutePathString()
}
suspend fun installAPK(

View File

@@ -30,6 +30,7 @@ import java.nio.file.Files
import java.nio.file.Path
import javax.xml.parsers.DocumentBuilderFactory
import kotlin.io.path.Path
import kotlin.io.path.relativeTo
object PackageTools {
private val logger = KotlinLogging.logger {}
@@ -68,10 +69,11 @@ object PackageTools {
.skipExceptions(false)
.to(jarFilePath)
if (handler.hasException()) {
val errorFile: Path = File(applicationDirs.extensionsRoot).toPath().resolve("$fileNameWithoutType-error.txt")
val rootPath = Path(applicationDirs.extensionsRoot)
val errorFile: Path = rootPath.resolve("$fileNameWithoutType-error.txt")
logger.error {
"""
Detail Error Information in File $errorFile
Detail Error Information in File ${errorFile.relativeTo(rootPath)}
Please report this file to one of following link if possible (any one).
https://sourceforge.net/p/dex2jar/tickets/
https://bitbucket.org/pxb1988/dex2jar/issues