…lines 1–103 unchanged (103 lines)
104 for ((kString, v) <- data.rest.toSeq)
105 yield kString.split(" +") match {
106 case Array(k) => onProperty(k, v)
107 case Array("object", k) => onNestedObject(
108 k,
109 upickle.core.BufferedValue.transform(
110 v,
111 HeaderData.headerDataReader(scriptPath)
112 )
113 )
114 case _ => sys.error("Invalid key: " + kString)
115 }
116 }
117
118 val miscInfoWithResource = {
…lines 119–131 unchanged (13 lines)
132 supportDestDir / "MillMiscInfo.scala",
133 miscInfoWithResource,
134 createFolders = true
135 )
136
137 def renderTemplate(prefix: String, data: HeaderData, path: Seq[String]): String = {
138 val extendsConfig = data.`extends`.value.map(_.value)
139 val definitions = processDataRest(data)(
140 onProperty = (_, _) => "", // Properties will be auto-implemented by AutoOverride
141 onNestedObject = (k, nestedData) =>
142 renderTemplate(s"object $k", nestedData, path :+ k)
143 ).filter(_.nonEmpty)
144
…lines 145–158 unchanged (14 lines)
159 case s"$externalModulePrefix/" => s"$externalModulePrefix.$renderedSegments"
160 }
161 }
162 }
163
164 val moduleDepsSnippet =
165 if (data.moduleDeps.value.isEmpty) ""
166 else
167 s"override def moduleDeps = Seq(${data.moduleDeps.value.map(_.value).map(parseRender).mkString(", ")})"
168
169 val compileModuleDepsSnippet =
170 if (data.compileModuleDeps.value.isEmpty) ""
171 else
172 s"override def compileModuleDeps = Seq(${data.compileModuleDeps.value.map(_.value).map(parseRender).mkString(", ")})"
173
174 val runModuleDepsSnippet =
175 if (data.runModuleDeps.value.isEmpty) ""
176 else
177 s"override def runModuleDeps = Seq(${data.runModuleDeps.value.map(_.value).map(parseRender).mkString(", ")})"
178
179 val extendsSnippet =
180 if (extendsConfig.nonEmpty)
181 s" extends ${extendsConfig.mkString(", ")}, AutoOverride[_root_.mill.T[?]]"
182 else " extends AutoOverride[_root_.mill.T[?]]"
183
…lines 184–471 unchanged (288 lines)