mutating func assignFlag()

in Sources/XCRemoteCache/Commands/Prepare/Integrate/XcodeSettingsFlags.swift [55:77]


    mutating func assignFlag(key: String, value: String?) {
        let flags: [String]
        let formattedKey = Self.swiftFlagPrefix.appending(key)
        switch (settingValue, value) {
        case (nil, nil):
            return
        case (nil, .some(let value)):
            flags = [XcodeSettingsBuilder.inheritedExpression, formattedKey, value]
        case (.some(let existing), _):
            var flagsComponents: [String] = existing.split(separator: " ").map(String.init)
            // remove (if exists)
            if let previousIndex = flagsComponents.firstIndex(of: formattedKey) {
                // delete "-{key}" and "{value}"
                flagsComponents.removeSubrange(previousIndex..<previousIndex + 2)
            }
            // add if setting a non nil value
            if let newValue = value {
                flagsComponents += buildSwiftFlag(key: formattedKey, value: newValue)
            }
            flags = flagsComponents
        }
        settingValue = XcodeSettingsBuilder.composeFlags(flags)
    }