in Sources/XCRemoteCache/Commands/Prebuild/PrebuildContext.swift [57:83]
init(_ config: XCRemoteCacheConfig, env: [String: String]) throws {
targetTempDir = try env.readEnv(key: "TARGET_TEMP_DIR")
productsDir = try env.readEnv(key: "BUILT_PRODUCTS_DIR")
moduleName = env.readEnv(key: "PRODUCT_MODULE_NAME")
let srcRoot: URL = try env.readEnv(key: "SRCROOT")
remoteCommitLocation = URL(fileURLWithPath: config.remoteCommitFile, relativeTo: srcRoot)
remoteCommit = RemoteCommitInfo(try? String(contentsOf: remoteCommitLocation).trim())
guard let address = URL(string: config.recommendedCacheAddress) else {
throw PrebuildContextError.invalidAddress(config.recommendedCacheAddress)
}
recommendedCacheAddress = address
let targetName: String = try env.readEnv(key: "TARGET_NAME")
forceCached = !config.focusedTargets.isEmpty && !config.focusedTargets.contains(targetName)
compilationHistoryFile = targetTempDir.appendingPathComponent(config.compilationHistoryFile)
turnOffRemoteCacheOnFirstTimeout = config.turnOffRemoteCacheOnFirstTimeout
self.targetName = targetName
let thinFocusedTargetsString: String? = env.readEnv(key: "SPT_XCREMOTE_CACHE_THINNED_TARGETS")
thinnedTargets = thinFocusedTargetsString?.split(separator: ",").map(String.init)
/// Note: The file has yaml extension, even it is in the json format
overlayHeadersPath = targetTempDir.appendingPathComponent("all-product-headers.yaml")
disabled = try env.readEnv(key: "XCRC_DISABLED") ?? false
let llbuildId: String = try env.readEnv(key: "LLBUILD_BUILD_ID")
llbuildIdLockFile = SwiftFrontendContext.buildLlbuildIdSharedLockUrl(
llbuildId: llbuildId,
tmpDir: targetTempDir
)
}