in src/Tulsi/TulsiProjectDocument.swift [342:378]
func deleteConfigsNamed(_ configNamesToRemove: [String]) {
let fileManager = FileManager.default
var nameToDoc = [String: TulsiGeneratorConfigDocument]()
for doc in childConfigDocuments.allObjects as! [TulsiGeneratorConfigDocument] {
guard let name = doc.configName else { continue }
nameToDoc[name] = doc
}
var configNames = Set<String>(generatorConfigNames)
for name in configNamesToRemove {
configNames.remove(name)
if let doc = nameToDoc[name] {
childConfigDocuments.remove(doc)
doc.close()
}
if let url = urlForConfigNamed(name, sanitized: false) {
let errorInfo: String?
do {
try fileManager.removeItem(at: url)
errorInfo = nil
} catch let e as NSError {
errorInfo = "Unexpected exception \(e.localizedDescription)"
} catch {
errorInfo = "Unexpected exception"
}
if let errorInfo = errorInfo {
let fmt = NSLocalizedString("Error_ConfigDeleteFailed",
comment: "Error when a TulsiGeneratorConfig named %1$@ could not be deleted.")
LogMessage.postError(String(format: fmt, name), details: errorInfo)
LogMessage.displayPendingErrors()
}
}
}
generatorConfigNames = configNames.sorted()
}