mutating func assignFlag()

in Sources/XCRemoteCache/Commands/Prepare/Integrate/XcodeSettingsFlags.swift [93:116]


    mutating func assignFlag(key: String, value: String?) {
        let flags: [String]
        switch (settingValue, value) {
        case (nil, nil):
            return
        case (nil, .some(let value)):
            flags = [XcodeSettingsBuilder.inheritedExpression] + buildCFlag(key: key, value: value)
        case (.some(let existing), _):
            var flagsComponents: [String] = existing.split(separator: " ").map(String.init)
            // remove (if exists)
            let existingFlagIndex = flagsComponents.firstIndex { component -> Bool in
                component.hasPrefix("\(Self.prefix)\(key)=")
            }
            if let index = existingFlagIndex {
                flagsComponents.remove(at: index)
            }
            // add (if sets new)
            if let newValue = value {
                flagsComponents += buildCFlag(key: key, value: newValue)
            }
            flags = flagsComponents
        }
        settingValue = XcodeSettingsBuilder.composeFlags(flags)
    }