mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-27 08:38:13 -07:00
VerifyKobaltZip.
This commit is contained in:
parent
b83c012c62
commit
19ad4ae3a2
3 changed files with 61 additions and 5 deletions
|
@ -56,5 +56,9 @@ class Args {
|
||||||
|
|
||||||
@Parameter(names = arrayOf("--update"), description = "Update to the latest version of Kobalt")
|
@Parameter(names = arrayOf("--update"), description = "Update to the latest version of Kobalt")
|
||||||
var update: Boolean = false
|
var update: Boolean = false
|
||||||
|
|
||||||
|
@Parameter(names = arrayOf("--verifyDistribution"), description = "Verify the distribution",
|
||||||
|
hidden = true)
|
||||||
|
var verifyDistribution: Boolean = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,10 +5,7 @@ import com.beust.kobalt.api.IClasspathDependency
|
||||||
import com.beust.kobalt.api.Kobalt
|
import com.beust.kobalt.api.Kobalt
|
||||||
import com.beust.kobalt.api.PluginTask
|
import com.beust.kobalt.api.PluginTask
|
||||||
import com.beust.kobalt.api.Project
|
import com.beust.kobalt.api.Project
|
||||||
import com.beust.kobalt.app.BuildFileCompiler
|
import com.beust.kobalt.app.*
|
||||||
import com.beust.kobalt.app.MainModule
|
|
||||||
import com.beust.kobalt.app.ProjectGenerator
|
|
||||||
import com.beust.kobalt.app.UpdateKobalt
|
|
||||||
import com.beust.kobalt.app.remote.KobaltClient
|
import com.beust.kobalt.app.remote.KobaltClient
|
||||||
import com.beust.kobalt.app.remote.KobaltServer
|
import com.beust.kobalt.app.remote.KobaltServer
|
||||||
import com.beust.kobalt.internal.PluginInfo
|
import com.beust.kobalt.internal.PluginInfo
|
||||||
|
@ -148,10 +145,12 @@ private class Main @Inject constructor(
|
||||||
} else if (args.serverMode) {
|
} else if (args.serverMode) {
|
||||||
server.run()
|
server.run()
|
||||||
} else {
|
} else {
|
||||||
// Update doesn't require to parse the build file
|
// Options that don't need Build.kt to be parsed first
|
||||||
if (args.update) {
|
if (args.update) {
|
||||||
// --update
|
// --update
|
||||||
updateKobalt.updateKobalt()
|
updateKobalt.updateKobalt()
|
||||||
|
} else if (args.verifyDistribution) {
|
||||||
|
VerifyKobaltZip().run()
|
||||||
} else {
|
} else {
|
||||||
//
|
//
|
||||||
// Everything below requires to parse the build file first
|
// Everything below requires to parse the build file first
|
||||||
|
|
53
src/main/kotlin/com/beust/kobalt/app/VerifyKobaltZip.kt
Normal file
53
src/main/kotlin/com/beust/kobalt/app/VerifyKobaltZip.kt
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
package com.beust.kobalt.app
|
||||||
|
|
||||||
|
import com.beust.kobalt.KobaltException
|
||||||
|
import com.beust.kobalt.api.Kobalt
|
||||||
|
import com.beust.kobalt.misc.KFiles
|
||||||
|
import com.beust.kobalt.misc.log
|
||||||
|
import java.io.FileInputStream
|
||||||
|
import java.util.jar.JarFile
|
||||||
|
import java.util.jar.JarInputStream
|
||||||
|
|
||||||
|
class VerifyKobaltZip {
|
||||||
|
fun run() {
|
||||||
|
var success = true
|
||||||
|
var foundKobaltw = false
|
||||||
|
var foundJar = false
|
||||||
|
var foundWrapperJar = false
|
||||||
|
|
||||||
|
val jarFilePath = "kobalt-" + Kobalt.version + ".jar"
|
||||||
|
val zipFilePath = KFiles.joinDir("kobaltBuild", "libs", "kobalt-" + Kobalt.version + ".zip")
|
||||||
|
val zipFile = JarFile(zipFilePath)
|
||||||
|
val stream = JarInputStream(FileInputStream(zipFilePath))
|
||||||
|
var entry = stream.nextEntry
|
||||||
|
while (entry != null) {
|
||||||
|
if (entry.name == "kobaltw") {
|
||||||
|
foundKobaltw = true
|
||||||
|
} else if (entry.name.endsWith(jarFilePath)) {
|
||||||
|
val ins = zipFile.getInputStream(entry)
|
||||||
|
if (ins.available() < 20000000) {
|
||||||
|
throw KobaltException(jarFilePath + " is too small: " + jarFilePath)
|
||||||
|
}
|
||||||
|
foundJar = true
|
||||||
|
} else if (entry.name.endsWith("kobalt-wrapper.jar")) {
|
||||||
|
foundWrapperJar = true
|
||||||
|
} else {
|
||||||
|
success = false
|
||||||
|
}
|
||||||
|
entry = stream.nextEntry
|
||||||
|
}
|
||||||
|
if (! success) {
|
||||||
|
throw KobaltException("Found unexpected file in $zipFilePath")
|
||||||
|
}
|
||||||
|
if (! foundKobaltw) {
|
||||||
|
throw KobaltException("Couldn't find kobaltw in $zipFilePath")
|
||||||
|
}
|
||||||
|
if (! foundJar) {
|
||||||
|
throw KobaltException("Couldn't find jar in $zipFilePath")
|
||||||
|
}
|
||||||
|
if (! foundWrapperJar) {
|
||||||
|
throw KobaltException("Couldn't find wrapper jar in $zipFilePath")
|
||||||
|
}
|
||||||
|
log(1, "$zipFilePath looks correct")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue