Skip to content

Commit

Permalink
making the api slightly less insane
Browse files Browse the repository at this point in the history
  • Loading branch information
NikkyAI committed Mar 20, 2021
1 parent a3a6a6a commit 9f9e689
Show file tree
Hide file tree
Showing 9 changed files with 281 additions and 158 deletions.
2 changes: 1 addition & 1 deletion core/src/main/kotlin/voodoo/curse/CurseClient.kt
Original file line number Diff line number Diff line change
Expand Up @@ -454,7 +454,7 @@ object CurseClient : KLogging() {

var oldFiles = files

if (version.isNotBlank()) {
if (version != null && version.isNotBlank()) {
files = files.filter { f ->
(f.fileName.contains(version.toRegex()) || f.fileName == version)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ data class CommonComponent(
override var description: String? = null,
override var optionalData: OptionalData? = null,
override var side: Side = Side.BOTH,
override var websiteUrl: String = "",
override var websiteUrl: String? = null,
override var dependencies: MutableMap<String, DependencyType> = mutableMapOf(),
// override var replaceDependencies: Map<ProjectID, ProjectID> = mapOf(),
override var packageType: PackageType = PackageType.MOD,
override var transient: Boolean = false, // this entry got added as dependency for something else
override var version: String = "", // TODO: use regex only ?
override var version: String? = null, // TODO: use regex only ?
override var fileName: String? = null,
override var fileNameRegex: String = ".*(?<!-sources\\.jar)(?<!-api\\.jar)(?<!-deobf\\.jar)(?<!-lib\\.jar)(?<!-slim\\.jar)$",
override var validMcVersions: Set<String> = setOf(),
Expand Down Expand Up @@ -61,9 +61,9 @@ data class DirectComponent(

@Serializable
data class JenkinsComponent(
override var jenkinsUrl: String = "",
override var jenkinsUrl: String? = null,
override var job: String = "",
override var buildNumber: Int = -1,
override var buildNumber: Int? = null,
override var useOriginalUrl: Boolean = true
) : JenkinsMutable

Expand Down
16 changes: 8 additions & 8 deletions core/src/main/kotlin/voodoo/data/components/Parts.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ interface Common {
val description: String?
val optionalData: OptionalData?
val side: Side
val websiteUrl: String
val websiteUrl: String?
val dependencies: MutableMap<String, DependencyType>
val packageType: PackageType
val transient: Boolean // this entry got added as dependency for somethin
val version: String // TODO: use regex only ?
val version: String? // TODO: use regex only ?
val fileName: String?
val fileNameRegex: String
val validMcVersions: Set<String>
Expand All @@ -37,12 +37,12 @@ interface CommonMutable : CommonImmutable {
override var description: String?
override var optionalData: OptionalData?
override var side: Side
override var websiteUrl: String
override var websiteUrl: String?
override var dependencies: MutableMap<String, DependencyType>
// override var replaceDependencies: Map<ProjectID, ProjectID>
override var packageType: PackageType
override var transient: Boolean // this entry got added as dependency for somethin
override var version: String // TODO: use regex only ?
override var version: String? // TODO: use regex only ?
override var fileName: String?
override var fileNameRegex: String
override var validMcVersions: Set<String>
Expand Down Expand Up @@ -88,15 +88,15 @@ interface DirectMutable: DirectImmutable {
}

interface JenkinsImmutable {
val jenkinsUrl: String
val jenkinsUrl: String?
val job: String
val buildNumber: Int
val buildNumber: Int?
val useOriginalUrl: Boolean
}
interface JenkinsMutable: JenkinsImmutable {
override var jenkinsUrl: String
override var jenkinsUrl: String?
override var job: String
override var buildNumber: Int
override var buildNumber: Int?
override var useOriginalUrl: Boolean
}

Expand Down
6 changes: 3 additions & 3 deletions core/src/main/kotlin/voodoo/data/lock/LockEntry.kt
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ sealed class LockEntry() : CommonLockModule, Comparable<LockEntry> {
override val description: String? = null,
override val optionalData: OptionalData? = null,
override val dependencies: Map<String, DependencyType> = mapOf(),
val jenkinsUrl: String = "",
val job: String = "",
val buildNumber: Int = -1,
val jenkinsUrl: String,
val job: String,
val buildNumber: Int,
val artifactRelativePath: String,
val artifactFileName: String,
val fileNameRegex: String = ".*(?<!-sources\\.jar)(?<!-api\\.jar)(?<!-deobf\\.jar)(?<!-lib\\.jar)(?<!-slim\\.jar)$",
Expand Down
9 changes: 5 additions & 4 deletions core/src/main/kotlin/voodoo/provider/JenkinsProvider.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,11 @@ object JenkinsProvider : ProviderBase("Jenkins Provider") {
// if (entry.job.isBlank()) {
// entry.job = entry.id
// }
val job = job(entry.job, entry.jenkinsUrl)
val buildNumber = job.lastSuccessfulBuild?.number ?: throw IllegalStateException("buildnumber not set")
val jenkinsUrl = entry.jenkinsUrl ?: error("jenkins url unset on entry '${entry.id}'")
val job = job(entry.job, jenkinsUrl)
val buildNumber = entry.buildNumber ?: job.lastSuccessfulBuild?.number ?: throw IllegalStateException("buildnumber not set")
val common = entry.lockCommon()
val artifact = artifact(entry.job, entry.jenkinsUrl, buildNumber, entry.fileNameRegex)
val artifact = artifact(entry.job, jenkinsUrl, buildNumber, entry.fileNameRegex)
return LockEntry.Jenkins(
id = common.id,
path = common.path,
Expand All @@ -51,7 +52,7 @@ object JenkinsProvider : ProviderBase("Jenkins Provider") {
description = common.description,
optionalData = common.optionalData,
dependencies = common.dependencies,
jenkinsUrl = entry.jenkinsUrl,
jenkinsUrl = jenkinsUrl,
job = entry.job,
buildNumber = buildNumber,
fileNameRegex = entry.fileNameRegex,
Expand Down
1 change: 0 additions & 1 deletion samples/fabricpack/164Version.voodoo.json5
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
"type": "curse",
"curse_projectName": "Fabric/campanion",
},

{
"type": "curse",
"curse_projectName": "Fabric/hwyla",
Expand Down
14 changes: 11 additions & 3 deletions voodoo/src/main/kotlin/voodoo/cli/ImportCurseCommand.kt
Original file line number Diff line number Diff line change
Expand Up @@ -178,15 +178,21 @@ class ImportCurseCommand() : CliktCommand(
hasCustomProperties = true
}
if(!addonFile.gameVersion.contains(manifest.minecraft.version)) {
entry.validMcVersions = addonFile.gameVersion.toSet() - "Forge"
entry = entry.copy(
validMcVersions = addonFile.gameVersion.toSet() - "Forge"
)
hasCustomProperties = true
}
when (addon.categorySection.name) {
CurseSection.MODS.sectionName -> {
// folder = "mods"
// entry = entry.copy(
// folder = "mods"
// )
}
CurseSection.RESOURCE_PACKS.sectionName -> {
entry.folder = "resourcepacks"
entry = entry.copy(
folder = "resourcepacks"
)
hasCustomProperties = true
}
else -> {
Expand All @@ -196,6 +202,8 @@ class ImportCurseCommand() : CliktCommand(
// fileNameRegex = "\\Q${addonFile.fileName}\\E"

if(!hasCustomProperties) {
// had single line string declaration herei n the past
// wo probbably can drop hasCustomProperties flag
FileEntry.Curse(
curse_projectName = entry.curse_projectName
)
Expand Down
Loading

0 comments on commit 9f9e689

Please sign in to comment.