func syncProducts()

in Sources/XCRemoteCache/Commands/Plugins/Thinning/UnzippedArtifactSwiftProductsOrganizer.swift [58:83]


    func syncProducts(fingerprint: String) throws {
        // Zipped artifact contains *.swiftmodule file placed in "swiftmodule/{{arch}}/{{moduleName}}.swiftmodule"
        let artifactSwiftmoduleDir = artifactLocation.appendingPathComponent("swiftmodule").appendingPathComponent(arch)
        let artifactSwiftmoduleBase = artifactSwiftmoduleDir.appendingPathComponent(moduleName)
        let artifactSwiftmoduleFiles = Dictionary(
            uniqueKeysWithValues: SwiftmoduleFileExtension.SwiftmoduleExtensions
                .map { ext, _ in
                    (ext, artifactSwiftmoduleBase.appendingPathExtension(ext.rawValue))
                }
        )

        // -Swift.h is placed in "include/{{arch}}/{{moduleName}}/{{moduleName}-Swift.h" location
        let artifactSwiftModuleObjCFile = artifactLocation
            .appendingPathComponent("include")
            .appendingPathComponent(arch)
            .appendingPathComponent(moduleName)
            .appendingPathComponent("\(moduleName)-Swift.h")

        let generatedModule = try productsGenerator.generateFrom(
            artifactSwiftModuleFiles: artifactSwiftmoduleFiles,
            artifactSwiftModuleObjCFile: artifactSwiftModuleObjCFile
        )

        try fingerprintSyncer.decorate(sourceDir: generatedModule.swiftmoduleDir, fingerprint: fingerprint)
        try fingerprintSyncer.decorate(file: generatedModule.objcHeaderFile, fingerprint: fingerprint)
    }