@@ -82,38 +82,41 @@ class Config(
8282 }
8383
8484 private fun parseEnv (keyValue : YAMLKeyValue ): Env {
85- return when (val value = keyValue.value) {
86- is YAMLMapping -> value.keyValues.associate {
87- kv -> kv.keyText to when (kv.value) {
88- is YAMLScalar -> EnvValue .StringValue (kv.valueText)
89- is YAMLMapping -> {
90- val kvv = kv.value as YAMLMapping
91- kvv.getKeyValueByKey(" sh" )?.let {
92- EnvValue .ShMode (it.valueText)
93- } ? : kvv.getKeyValueByKey(" checksum" )?.let {
94- when (it.value) {
95- is YAMLSequence -> {
96- EnvValue .ChecksumMode ((it.value as YAMLSequence ).items.mapNotNull { it.value?.text })
97- }
85+ val value = keyValue.value as ? YAMLMapping ? : return emptyMap()
9886
99- is YAMLMapping -> {
100- val checksumMap = it.value as YAMLMapping
101- EnvValue .ChecksumMapMode (checksumMap.keyValues.associate { entry ->
102- entry.keyText to (entry.value as YAMLSequence ).items.mapNotNull { it.value?.text }
103- })
104- }
87+ return value.keyValues.associate { kv ->
88+ kv.keyText to parseEnvValue(kv)
89+ }
90+ }
10591
106- else -> {
107- EnvValue .ChecksumMode (emptyList())
108- }
92+ private fun parseEnvValue (kv : YAMLKeyValue ): EnvValue {
93+ return when (val envValue = kv.value) {
94+ is YAMLScalar -> EnvValue .StringValue (envValue.textValue)
95+ is YAMLMapping -> parseMappingEnvValue(envValue)
96+ else -> EnvValue .StringValue (" " )
97+ }
98+ }
99+
100+ private fun parseMappingEnvValue (value : YAMLMapping ): EnvValue {
101+ value.keyValues.forEach { kv ->
102+ when (kv.keyText) {
103+ " sh" -> return EnvValue .ShMode (kv.valueText)
104+ " checksum" -> {
105+ return when (val checksumValue = kv.value) {
106+ is YAMLSequence -> EnvValue .ChecksumMode (
107+ checksumValue.items.mapNotNull { it.value?.text }
108+ )
109+ is YAMLMapping -> EnvValue .ChecksumMapMode (
110+ checksumValue.keyValues.associate { entry ->
111+ entry.keyText to (entry.value as YAMLSequence ).items.mapNotNull { it.value?.text }
109112 }
110- } ? : EnvValue .StringValue (" " )
113+ )
114+ else -> EnvValue .StringValue (" " )
111115 }
112- else -> EnvValue .StringValue (" " )
113116 }
114117 }
115- else -> emptyMap()
116118 }
119+ return EnvValue .StringValue (" " )
117120 }
118121
119122 private fun parseShell (keyValue : YAMLKeyValue ): String {
0 commit comments