diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/Io.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/Io.kt index 399bde5a..6f8694a9 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/Io.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/Io.kt @@ -33,6 +33,14 @@ class Io(val dryRun: Boolean = false) { } } + fun rename(from: File, to: File) { + log("rename $from $to") + moveFile(from, to.parentFile) + if (from.name != to.name) { + File(to, from.name).renameTo(to) + } + } + fun copyDirectory(from: File, toDir: File) { log("cp -r $from $toDir") diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/JarUtils.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/JarUtils.kt index 13c0ebd3..90b8aacc 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/JarUtils.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/JarUtils.kt @@ -123,9 +123,10 @@ public class JarUtils { return null } - fun extractJarFile(jarFile: File, destDir: File) { - val jar = JarFile(jarFile) - val enumEntries = jar.entries() + fun extractJarFile(file: File, destDir: File) = extractZipFile(JarFile(file), destDir) + + fun extractZipFile(zipFile: ZipFile, destDir: File) { + val enumEntries = zipFile.entries() while (enumEntries.hasMoreElements()) { val file = enumEntries.nextElement() val f = File(destDir.path + File.separator + file.name) @@ -134,7 +135,7 @@ public class JarUtils { continue } - jar.getInputStream(file).use { ins -> + zipFile.getInputStream(file).use { ins -> f.parentFile.mkdirs() FileOutputStream(f).use { fos -> while (ins.available() > 0) {