diff --git a/build.gradle.kts b/build.gradle.kts index 99135517..5e4aadb1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -159,7 +159,7 @@ subprojects { className = "GeneratedConstants" ) { field("BUILD") value versionSuffix - field("VERSION") value fullVersion + field("VERSION") value fullVersion.substringBefore('-') field("FULL_VERSION") value fullVersion field("MAVEN_URL") value "https://nikky.moe/maven" field("MAVEN_GROUP") value group.toString() diff --git a/core/src/main/kotlin/voodoo/data/flat/FlatModPack.kt b/core/src/main/kotlin/voodoo/data/flat/FlatModPack.kt index 13cc856a..fbdf1423 100644 --- a/core/src/main/kotlin/voodoo/data/flat/FlatModPack.kt +++ b/core/src/main/kotlin/voodoo/data/flat/FlatModPack.kt @@ -73,10 +73,6 @@ data class FlatModPack( this@FlatModPack ) - resolvedEntries.forEach { entry -> - logger.info { "RESOLVED: ${entry.id} $entry" } - } - "validate".watch { resolvedEntries.forEach { lockEntry -> val provider = Providers[lockEntry.providerType] diff --git a/core/src/main/kotlin/voodoo/provider/JenkinsProvider.kt b/core/src/main/kotlin/voodoo/provider/JenkinsProvider.kt index d5c12e8f..36a4a119 100644 --- a/core/src/main/kotlin/voodoo/provider/JenkinsProvider.kt +++ b/core/src/main/kotlin/voodoo/provider/JenkinsProvider.kt @@ -5,7 +5,7 @@ import kotlinx.coroutines.channels.SendChannel import kotlinx.coroutines.delay import kotlinx.coroutines.flow.FlowCollector import kotlinx.coroutines.runBlocking -import voodoo.core.GeneratedConstants.VERSION +import voodoo.core.GeneratedConstants import voodoo.data.EntryReportData import voodoo.data.Quadruple import voodoo.data.flat.FlatEntry @@ -26,7 +26,7 @@ import java.util.* */ object JenkinsProvider : ProviderBase("Jenkins Provider") { - const val useragent = "voodoo/$VERSION (https://github.com/DaemonicLabs/Voodoo)" + const val useragent = "voodoo/${GeneratedConstants.FULL_VERSION} (https://github.com/DaemonicLabs/Voodoo)" override suspend fun resolve( entry: FlatEntry, diff --git a/samples/fabricpack/lock/0.0.3/lock.pack.json b/samples/fabricpack/lock/0.0.3/lock.pack.json index e6e7202c..7b95ef66 100644 --- a/samples/fabricpack/lock/0.0.3/lock.pack.json +++ b/samples/fabricpack/lock/0.0.3/lock.pack.json @@ -94,6 +94,14 @@ "projectID": 317514, "fileID": 3174695 }, + { + "type": "jenkins", + "id": "opencomputers", + "path": "mods", + "jenkinsUrl": "https://ci.cil.li/", + "job": "OpenComputers-MC1.12", + "buildNumber": 213 + }, { "type": "curse", "id": "roughly-enough-items", diff --git a/util/download/src/main/kotlin/voodoo.util/Client.kt b/util/download/src/main/kotlin/voodoo.util/Client.kt index 372d100b..03306032 100644 --- a/util/download/src/main/kotlin/voodoo.util/Client.kt +++ b/util/download/src/main/kotlin/voodoo.util/Client.kt @@ -8,7 +8,7 @@ import io.ktor.client.features.json.serializer.KotlinxSerializer import io.ktor.util.KtorExperimentalAPI import voodoo.util.download.GeneratedConstants -const val useragent = "voodoo/${GeneratedConstants.VERSION} (https://github.com/DaemonicLabs/Voodoo)" +const val useragent = "voodoo/${GeneratedConstants.FULL_VERSION} (https://github.com/DaemonicLabs/Voodoo)" // "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36" // ""voodoo/$VERSION (https://github.com/elytra/Voodoo)" inline fun useClient(createClient: () -> HttpClient = { diff --git a/voodoo/src/main/kotlin/voodoo/cli/CompileCommand.kt b/voodoo/src/main/kotlin/voodoo/cli/CompileCommand.kt index e4231cfc..c595550e 100644 --- a/voodoo/src/main/kotlin/voodoo/cli/CompileCommand.kt +++ b/voodoo/src/main/kotlin/voodoo/cli/CompileCommand.kt @@ -53,7 +53,7 @@ class CompileCommand() : CliktCommand( val config = Configuration.parse(rootDir = rootDir) val packs: Map, List> = packFiles.map { packFile -> - val baseDir = packFile.absoluteFile.parentFile + val baseDir = rootDir.resolve(packFile.absoluteFile.parentFile) val id = baseDir.name val metaPackFile = baseDir.resolve(MetaPack.FILENAME) val versionPack = VersionPack.parse(packFile = packFile) diff --git a/voodoo/src/main/kotlin/voodoo/cli/UpdateCommand.kt b/voodoo/src/main/kotlin/voodoo/cli/UpdateCommand.kt new file mode 100644 index 00000000..fdbc4e18 --- /dev/null +++ b/voodoo/src/main/kotlin/voodoo/cli/UpdateCommand.kt @@ -0,0 +1,50 @@ +package voodoo.cli + +import com.github.ajalt.clikt.core.CliktCommand +import com.github.ajalt.clikt.core.requireObject +import kotlinx.coroutines.runBlocking +import kotlinx.coroutines.slf4j.MDCContext +import mu.KotlinLogging +import mu.withLoggingContext +import voodoo.util.maven.MavenUtil +import voodoo.voodoo.GeneratedConstants +import java.io.StringWriter +import java.util.* + +class UpdateCommand : CliktCommand( + name = "update", + help = "updates the version of voodoo" +) { + private val logger = KotlinLogging.logger {} + val cliContext by requireObject() + + override fun run(): Unit = withLoggingContext("command" to commandName) { + val rootDir = cliContext.rootDir + + runBlocking(MDCContext()) { + val propertiesFile = rootDir.resolve("wrapper/wrapper.properties") + propertiesFile.absoluteFile.parentFile.mkdirs() + + val properties = Properties().also { prop -> + propertiesFile.bufferedReader().use { + prop.load(it) + } + } + + val version = MavenUtil.getLatestVersionFromMavenMetadata( + GeneratedConstants.MAVEN_URL, + GeneratedConstants.MAVEN_GROUP, + "voodoo" + ) + val groupPath = GeneratedConstants.MAVEN_GROUP.replace('.', '/') + properties["distributionUrl"] = + "${GeneratedConstants.MAVEN_URL}/$groupPath/voodoo/$version/voodoo-$version-${GeneratedConstants.MAVEN_SHADOW_CLASSIFIER}.jar" +// prop["distributionPath"] = "wrapper/bin" + + StringWriter().use { + properties.store(it, "generated by: voodoo generateWrapper") + propertiesFile.writeText(it.toString()) + } + } + } +} \ No newline at end of file diff --git a/voodoo/src/main/kotlin/voodoo/cli/VoodooCommand.kt b/voodoo/src/main/kotlin/voodoo/cli/VoodooCommand.kt index b509a4b0..1d80b342 100644 --- a/voodoo/src/main/kotlin/voodoo/cli/VoodooCommand.kt +++ b/voodoo/src/main/kotlin/voodoo/cli/VoodooCommand.kt @@ -34,6 +34,7 @@ class VoodooCommand(invocation: String = "voodoo") : CliktCommand( PackageCommand(), LaunchCommand(), GenerateSchemaCommand(), + UpdateCommand() ) } diff --git a/voodoo/src/main/kotlin/voodoo/cli/launch/LaunchMultiMCCommand.kt b/voodoo/src/main/kotlin/voodoo/cli/launch/LaunchMultiMCCommand.kt index 6df54dd0..417ba30f 100644 --- a/voodoo/src/main/kotlin/voodoo/cli/launch/LaunchMultiMCCommand.kt +++ b/voodoo/src/main/kotlin/voodoo/cli/launch/LaunchMultiMCCommand.kt @@ -49,7 +49,7 @@ class LaunchMultiMCCommand(): CliktCommand( //TODO: look up rootDir based on lockpack input file val rootDir = cliContext.rootDir - val baseDir = packFile.absoluteFile.parentFile + val baseDir = rootDir.resolve(packFile.absoluteFile.parentFile) val id = baseDir.name stopwatch { val metaPackFile = baseDir.resolve(MetaPack.FILENAME) diff --git a/wrapper/multimc-installer/build.gradle.kts b/wrapper/multimc-installer/build.gradle.kts deleted file mode 100644 index fa51d525..00000000 --- a/wrapper/multimc-installer/build.gradle.kts +++ /dev/null @@ -1,12 +0,0 @@ -plugins { - java - application -} - -application { - mainClassName = "voodoo.Bootstrap" -} - -dependencies { - implementation(project(":wrapper")) -} \ No newline at end of file diff --git a/wrapper/multimc-installer/src/main/resources/maven.properties b/wrapper/multimc-installer/src/main/resources/maven.properties deleted file mode 100644 index 68ce3c68..00000000 --- a/wrapper/multimc-installer/src/main/resources/maven.properties +++ /dev/null @@ -1,5 +0,0 @@ -#Sat Nov 14 13:11:11 CET 2020 -url=https\://dl.bintray.com/nikkyai/github -name=multimc-installer -classifier=all -group=moe.nikky.voodoo