private def prepareMappings()

in ideaSupport/src/main/scala/org/jetbrains/sbtidea/searchableoptions/BuildIndex.scala [148:176]


  private def prepareMappings(indexes: Seq[IndexElement], tmp: Path)(implicit log: PluginLogger): Seq[(Path, Mapping)] =
    indexes.map {
      case IndexElement.Old(jar, indexXML) =>
        // copy the xml file into a temporary directory that has the required target structure: search/searchableOptions.xml
        val source = tmp / s"index-${jar.getFileName}-xml"
        val searchDir = source / "search"
        Files.createDirectories(searchDir)
        Files.copy(indexXML, searchDir / "searchableOptions.xml")

        log.info(s"SearchIndex Mapping: $indexXML -> ${jar / "search" / "searchableOptions.xml"}")

        jar ->
          Mapping(source.toFile,
            jar.toFile,
            MappingMetaData.EMPTY.copy(kind = MAPPING_KIND.MISC)
          )
      case IndexElement.New(jar, indexJson) =>
        val source = tmp / s"index-${jar.getFileName}-json"
        Files.createDirectories(source)
        Files.copy(indexJson, source / indexJson.getFileName.toString)

        log.info(s"SearchIndex Mapping: $indexJson -> ${jar / indexJson.getFileName.toString}")

        jar ->
          Mapping(source.toFile,
            jar.toFile,
            MappingMetaData.EMPTY.copy(kind = MAPPING_KIND.MISC)
          )
    }