[klib] Finish refactoring of ZipUtil
This commit is contained in:
committed by
Space Team
parent
e4d32f3615
commit
a66950b629
@@ -81,8 +81,7 @@ fun <T> File.withZipFileSystem(create: Boolean, action: (FileSystem) -> T): T {
|
|||||||
|
|
||||||
fun <T> File.withZipFileSystem(action: (FileSystem) -> T): T = this.withZipFileSystem(false, action)
|
fun <T> File.withZipFileSystem(action: (FileSystem) -> T): T = this.withZipFileSystem(false, action)
|
||||||
|
|
||||||
// TODO: Make this function private after boostrap advance
|
private fun File.recursiveCopyTo(destination: File, resetTimeAttributes: Boolean = false) {
|
||||||
fun File.recursiveCopyTo(destination: File, resetTimeAttributes: Boolean = false) {
|
|
||||||
val sourcePath = javaPath
|
val sourcePath = javaPath
|
||||||
val destPath = destination.javaPath
|
val destPath = destination.javaPath
|
||||||
val destFs = destPath.fileSystem
|
val destFs = destPath.fileSystem
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
package org.jetbrains.kotlin.library
|
package org.jetbrains.kotlin.library
|
||||||
|
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
import org.jetbrains.kotlin.konan.file.file
|
import org.jetbrains.kotlin.konan.file.unzipTo
|
||||||
import org.jetbrains.kotlin.konan.file.recursiveCopyTo
|
|
||||||
import org.jetbrains.kotlin.konan.file.withZipFileSystem
|
|
||||||
import org.jetbrains.kotlin.library.impl.zippedKotlinLibraryChecks
|
import org.jetbrains.kotlin.library.impl.zippedKotlinLibraryChecks
|
||||||
|
|
||||||
const val KLIB_FILE_EXTENSION = "klib"
|
const val KLIB_FILE_EXTENSION = "klib"
|
||||||
@@ -24,10 +22,7 @@ fun File.unpackZippedKonanLibraryTo(newDir: File) {
|
|||||||
newDir.delete()
|
newDir.delete()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Replace this with this.unzipTo(newDir) after bootstrap advance
|
this.unzipTo(newDir)
|
||||||
this.withZipFileSystem {
|
|
||||||
it.file("/").recursiveCopyTo(newDir)
|
|
||||||
}
|
|
||||||
check(newDir.exists) { "Could not unpack $this as $newDir." }
|
check(newDir.exists) { "Could not unpack $this as $newDir." }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-12
@@ -3,7 +3,6 @@ package org.jetbrains.kotlin.library.impl
|
|||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
import org.jetbrains.kotlin.konan.file.file
|
import org.jetbrains.kotlin.konan.file.file
|
||||||
import org.jetbrains.kotlin.konan.file.unzipTo
|
import org.jetbrains.kotlin.konan.file.unzipTo
|
||||||
import org.jetbrains.kotlin.konan.file.recursiveCopyTo
|
|
||||||
import org.jetbrains.kotlin.konan.file.withZipFileSystem
|
import org.jetbrains.kotlin.konan.file.withZipFileSystem
|
||||||
import org.jetbrains.kotlin.library.*
|
import org.jetbrains.kotlin.library.*
|
||||||
import org.jetbrains.kotlin.util.removeSuffixIfPresent
|
import org.jetbrains.kotlin.util.removeSuffixIfPresent
|
||||||
@@ -111,19 +110,11 @@ private fun extract(zipFile: File, file: File) = zipFile.withZipFileSystem { zip
|
|||||||
|
|
||||||
fun KotlinLibraryLayoutImpl.extractDir(directory: File): File = extractDir(this.klib, directory)
|
fun KotlinLibraryLayoutImpl.extractDir(directory: File): File = extractDir(this.klib, directory)
|
||||||
|
|
||||||
// TODO: Use this implementation after bootstrap advance
|
private fun extractDir(zipFile: File, directory: File): File {
|
||||||
//private fun extractDir(zipFile: File, directory: File): File {
|
|
||||||
// val temporary = org.jetbrains.kotlin.konan.file.createTempDir(directory.name)
|
|
||||||
// temporary.deleteOnExitRecursively()
|
|
||||||
// zipFile.unzipTo(temporary, fromSubdirectory = directory)
|
|
||||||
// return temporary
|
|
||||||
//}
|
|
||||||
|
|
||||||
private fun extractDir(zipFile: File, directory: File): File = zipFile.withZipFileSystem { zipFileSystem ->
|
|
||||||
val temporary = org.jetbrains.kotlin.konan.file.createTempDir(directory.name)
|
val temporary = org.jetbrains.kotlin.konan.file.createTempDir(directory.name)
|
||||||
zipFileSystem.file(directory).recursiveCopyTo(temporary)
|
|
||||||
temporary.deleteOnExitRecursively()
|
temporary.deleteOnExitRecursively()
|
||||||
temporary
|
zipFile.unzipTo(temporary, fromSubdirectory = directory)
|
||||||
|
return temporary
|
||||||
}
|
}
|
||||||
|
|
||||||
open class ExtractingKotlinLibraryLayout(zipped: KotlinLibraryLayoutImpl) : KotlinLibraryLayout {
|
open class ExtractingKotlinLibraryLayout(zipped: KotlinLibraryLayoutImpl) : KotlinLibraryLayout {
|
||||||
|
|||||||
Reference in New Issue
Block a user