mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 08:27:12 -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")
|
||||
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.PluginTask
|
||||
import com.beust.kobalt.api.Project
|
||||
import com.beust.kobalt.app.BuildFileCompiler
|
||||
import com.beust.kobalt.app.MainModule
|
||||
import com.beust.kobalt.app.ProjectGenerator
|
||||
import com.beust.kobalt.app.UpdateKobalt
|
||||
import com.beust.kobalt.app.*
|
||||
import com.beust.kobalt.app.remote.KobaltClient
|
||||
import com.beust.kobalt.app.remote.KobaltServer
|
||||
import com.beust.kobalt.internal.PluginInfo
|
||||
|
@ -148,10 +145,12 @@ private class Main @Inject constructor(
|
|||
} else if (args.serverMode) {
|
||||
server.run()
|
||||
} else {
|
||||
// Update doesn't require to parse the build file
|
||||
// Options that don't need Build.kt to be parsed first
|
||||
if (args.update) {
|
||||
// --update
|
||||
updateKobalt.updateKobalt()
|
||||
} else if (args.verifyDistribution) {
|
||||
VerifyKobaltZip().run()
|
||||
} else {
|
||||
//
|
||||
// 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