// // P4ClientApiExtensions.swift // DocHub // // Created by Tristan Juricek on 6/12/14. // Copyright (c) 2014 Perforce. All rights reserved. // import Foundation extension P4ClientApi { // Executes the "p4 depots" command func depots() -> (NSError?, P4Depot[]) { var apiDelegate = P4CachingDelegate() runCommand("depots", withArguments: nil, delegate: apiDelegate) if apiDelegate.error { return (apiDelegate.error, []) } let depots = apiDelegate.tagged.map({ (dict) -> P4Depot in P4Depot(time: dict["time"]!.toInt()!, type: dict["type"]!, desc: dict["desc"]!, name: dict["name"]!) }) return (nil, depots) } func dirs(paths:String...) -> (NSError?, P4Dir[]) { let delegate = P4CachingDelegate() runCommand("dirs", withArguments: paths, delegate: delegate) if delegate.error { return (delegate.error, []) } let dirs = delegate.tagged.map({ P4Dir(depotPath: $0["dir"]!) }) return (nil, dirs) } func files(paths:String...) -> (NSError?, P4File[]) { let delegate = P4CachingDelegate() runCommand("files", withArguments: paths, delegate: delegate) if (delegate.error) { return (delegate.error, []) } var files = delegate.tagged.map({ P4File(depotPath: $0["depotFile"]!, revision: $0["change"]!.toInt()!, action: $0["action"]!, type: $0["type"]!) }) return (nil, files) } }