Skip to content

Commit d3bef04

Browse files
committed
Simplify OciImagesTask.toVariant
1 parent 20dc55a commit d3bef04

1 file changed

Lines changed: 4 additions & 13 deletions

File tree

src/main/kotlin/io/github/sgtsilvio/gradle/oci/image/OciImagesTask.kt

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -108,20 +108,11 @@ abstract class OciImagesTask : DefaultTask() {
108108

109109
private fun VariantInput.toVariant(): OciVariant {
110110
val metadata = metadataFile.readText().decodeAsJsonToOciMetadata()
111-
val layerFiles = layerFiles
112-
val layers = ArrayList<OciLayer>(layerFiles.size)
113-
var layerFilesIndex = 0
114-
for (layer in metadata.layers) {
115-
val layerDescriptor = layer.descriptor ?: continue
116-
if (layerFilesIndex >= layerFiles.size) {
117-
throw IllegalStateException("count of layer descriptors (${layerFilesIndex + 1}+) and layer files (${layerFiles.size}) do not match")
118-
}
119-
val layerFile = layerFiles[layerFilesIndex++]
120-
layers += OciLayer(layerDescriptor, layerFile)
121-
}
122-
if (layerFilesIndex < layerFiles.size) {
123-
throw IllegalStateException("count of layer descriptors ($layerFilesIndex) and layer files (${layerFiles.size}) do not match")
111+
val layerDescriptors = metadata.layers.mapNotNull { it.descriptor }
112+
if (layerDescriptors.size != layerFiles.size) {
113+
throw IllegalStateException("count of layer descriptors (${layerDescriptors.size}) and layer files (${layerFiles.size}) do not match")
124114
}
115+
val layers = layerDescriptors.zip(layerFiles) { descriptor, file -> OciLayer(descriptor, file) }
125116
return OciVariant(metadata, layers)
126117
}
127118

0 commit comments

Comments
 (0)