diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KobaltWrapperProperties.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KobaltWrapperProperties.kt index 8af0da44..b0c7070d 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KobaltWrapperProperties.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/misc/KobaltWrapperProperties.kt @@ -4,6 +4,7 @@ import com.beust.kobalt.api.Kobalt import com.google.inject.Inject import java.io.File import java.io.FileReader +import java.sql.Timestamp import java.util.* /** @@ -13,12 +14,14 @@ class KobaltWrapperProperties @Inject constructor() { private val WRAPPER_DIR = KFiles.KOBALT_DIR + "/wrapper" private val KOBALT_WRAPPER_PROPERTIES = "kobalt-wrapper.properties" private val PROPERTY_VERSION = "kobalt.version" + private val PROPERTY_VERSION_LAST_CHECKED = "kobalt.version.last_checked" private val PROPERTY_DOWNLOAD_URL = "kobalt.downloadUrl" - fun create(version: String) { + fun create(version: String, versionLastChecked: Timestamp) { log(2, "Creating $file with $version and ${defaultUrlFor(version)}") KFiles.saveFile(file, listOf( - "$PROPERTY_VERSION=$version" + "$PROPERTY_VERSION=$version", + "$PROPERTY_VERSION_LAST_CHECKED=$versionLastChecked" // "$PROPERTY_DOWNLOAD_URL=${defaultUrlFor(version)}" ).joinToString("\n")) } @@ -33,7 +36,7 @@ class KobaltWrapperProperties @Inject constructor() { get() { val config = file if (!config.exists()) { - create(Kobalt.version) + create(Kobalt.version, Timestamp(0)) } val result = Properties() @@ -44,6 +47,9 @@ class KobaltWrapperProperties @Inject constructor() { val version : String get() = properties.getProperty(PROPERTY_VERSION) + val versionLastChecked: Timestamp + get() = Timestamp.valueOf(properties.getProperty(PROPERTY_VERSION_LAST_CHECKED)) + val downloadUrl : String get() = properties.getProperty(PROPERTY_DOWNLOAD_URL) } diff --git a/src/main/kotlin/com/beust/kobalt/app/UpdateKobalt.kt b/src/main/kotlin/com/beust/kobalt/app/UpdateKobalt.kt index 342741b1..93eca108 100644 --- a/src/main/kotlin/com/beust/kobalt/app/UpdateKobalt.kt +++ b/src/main/kotlin/com/beust/kobalt/app/UpdateKobalt.kt @@ -4,6 +4,7 @@ import com.beust.kobalt.api.Kobalt import com.beust.kobalt.misc.* import com.beust.kobalt.wrapper.Main import java.io.File +import java.sql.Timestamp import java.util.concurrent.TimeoutException import javax.inject.Inject @@ -13,7 +14,7 @@ import javax.inject.Inject public class UpdateKobalt @Inject constructor(val github: GithubApi, val wrapperProperties: KobaltWrapperProperties) { fun updateKobalt() { val newVersion = github.latestKobaltVersion - wrapperProperties.create(newVersion.get()) + wrapperProperties.create(newVersion.get(), Timestamp(System.currentTimeMillis())) Main.main(arrayOf()) } @@ -39,6 +40,7 @@ public class UpdateKobalt @Inject constructor(val github: GithubApi, val wrapper } } } + wrapperProperties.create(wrapperProperties.version, Timestamp(System.currentTimeMillis())) } catch(ex: TimeoutException) { log(2, "Didn't get the new version in time, skipping it") }