format_code

This commit is contained in:
Yonas Kolb
2018-11-04 22:30:34 +11:00
parent f30536a40f
commit 1631236b7a
20 changed files with 98 additions and 113 deletions
+2 -2
View File
@@ -8,12 +8,12 @@ public struct Plist: Equatable {
public init(path: String, attributes: [String: Any] = [:]) {
self.path = path
self.properties = attributes
properties = attributes
}
public static func == (lhs: Plist, rhs: Plist) -> Bool {
return lhs.path == rhs.path &&
NSDictionary(dictionary: lhs.properties).isEqual(to: rhs.properties)
NSDictionary(dictionary: lhs.properties).isEqual(to: rhs.properties)
}
}
+1 -1
View File
@@ -103,7 +103,7 @@ public struct Scheme: Equatable {
name: String,
randomExecutionOrder: Bool = false,
parallelizable: Bool = false
) {
) {
self.name = name
self.randomExecutionOrder = randomExecutionOrder
self.parallelizable = parallelizable
+4 -5
View File
@@ -147,16 +147,15 @@ extension Project {
let path = Path(dependency.reference)
if !dependency.reference.contains("/") {
switch path.extension {
case "framework"?,
"tbd"?:
case "framework"?,
"tbd"?:
break
default:
errors.append(.invalidSDKDependency(target: target.name, dependency: dependency.reference))
default:
errors.append(.invalidSDKDependency(target: target.name, dependency: dependency.reference))
}
}
default: break
}
}
for source in target.sources {
+1 -1
View File
@@ -242,7 +242,7 @@ extension Target: NamedJSONDictionaryConvertible {
public init(name: String, jsonDictionary: JSONDictionary) throws {
let resolvedName: String = jsonDictionary.json(atKeyPath: "name") ?? name
self.name = resolvedName
self.productName = jsonDictionary.json(atKeyPath: "productName") ?? resolvedName
productName = jsonDictionary.json(atKeyPath: "productName") ?? resolvedName
let typeString: String = try jsonDictionary.json(atKeyPath: "type")
if let type = PBXProductType(string: typeString) {
self.type = type
+1 -1
View File
@@ -34,7 +34,7 @@ extension TargetScheme: JSONObjectConvertible {
public init(jsonDictionary: JSONDictionary) throws {
if let targets = jsonDictionary["testTargets"] as? [Any] {
self.testTargets = try targets.compactMap { target in
testTargets = try targets.compactMap { target in
if let string = target as? String {
return .init(name: string)
} else if let dictionary = target as? JSONDictionary {
+1 -1
View File
@@ -1,7 +1,7 @@
import Foundation
import PathKit
import ProjectSpec
import xcodeproj
import PathKit
public class FileWriter {
+2 -2
View File
@@ -1,6 +1,6 @@
import Foundation
import ProjectSpec
import PathKit
import ProjectSpec
public class InfoPlistGenerator {
@@ -8,7 +8,7 @@ public class InfoPlistGenerator {
Default info plist attributes taken from:
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/Base/Base_DefinitionsInfoPlist.xctemplate/TemplateInfo.plist
*/
var defaultInfoPlist: [String: Any] = {
var defaultInfoPlist: [String: Any] = {
var dictionary: [String: Any] = [:]
dictionary["CFBundleIdentifier"] = "$(PRODUCT_BUNDLE_IDENTIFIER)"
dictionary["CFBundleInfoDictionaryVersion"] = "6.0"
+11 -7
View File
@@ -541,18 +541,22 @@ public class PBXProjGenerator {
fileReference = existingFileReferences
} else {
fileReference = addObject(
PBXFileReference(sourceTree: .sdkRoot,
name: dependencyPath.lastComponent,
lastKnownFileType: Xcode.fileType(path: dependencyPath),
path: dependencyPath.string)
PBXFileReference(
sourceTree: .sdkRoot,
name: dependencyPath.lastComponent,
lastKnownFileType: Xcode.fileType(path: dependencyPath),
path: dependencyPath.string
)
)
sdkFileReferences[dependency.reference] = fileReference
frameworkFiles.append(fileReference)
}
let buildFile = addObject(
PBXBuildFile(file: fileReference,
settings: getDependencyFrameworkSettings(dependency: dependency))
PBXBuildFile(
file: fileReference,
settings: getDependencyFrameworkSettings(dependency: dependency)
)
)
targetFrameworkBuildFiles.append(buildFile)
@@ -634,7 +638,7 @@ public class PBXProjGenerator {
let headersBuildPhaseFiles = getBuildFilesForPhase(.headers)
if !headersBuildPhaseFiles.isEmpty {
if (target.type == .framework || target.type == .dynamicLibrary) {
if target.type == .framework || target.type == .dynamicLibrary {
let headersBuildPhase = addObject(PBXHeadersBuildPhase(files: headersBuildPhaseFiles))
buildPhases.append(headersBuildPhase)
} else {
+9 -7
View File
@@ -1,6 +1,6 @@
import Foundation
import ProjectSpec
import xcodeproj
import Foundation
public class SchemeGenerator {
@@ -83,8 +83,8 @@ public class SchemeGenerator {
guard let buildableName =
project.getTarget(buildTarget.target)?.filename ??
project.getAggregateTarget(buildTarget.target)?.name else {
fatalError("Unable to determinate \"buildableName\" for build target: \(buildTarget.target)")
project.getAggregateTarget(buildTarget.target)?.name else {
fatalError("Unable to determinate \"buildableName\" for build target: \(buildTarget.target)")
}
let buildableReference = XCScheme.BuildableReference(
referencedContainer: "container:\(project.name).xcodeproj",
@@ -129,10 +129,12 @@ public class SchemeGenerator {
)
let testables = zip(testTargets, testBuildTargetEntries).map { testTarget, testBuilEntries in
XCScheme.TestableReference(skipped: false,
parallelizable: testTarget.parallelizable,
randomExecutionOrdering: testTarget.randomExecutionOrder,
buildableReference: testBuilEntries.buildableReference)
XCScheme.TestableReference(
skipped: false,
parallelizable: testTarget.parallelizable,
randomExecutionOrdering: testTarget.randomExecutionOrder,
buildableReference: testBuilEntries.buildableReference
)
}
let testCommandLineArgs = scheme.test.map { XCScheme.CommandLineArguments($0.commandLineArguments) }
+1 -1
View File
@@ -1,6 +1,6 @@
import Foundation
import xcodeproj
import PathKit
import xcodeproj
extension PBXFileElement {
@@ -1,5 +1,5 @@
import UIKit
import Contacts
import UIKit
class ViewController: UIViewController {
@@ -1,17 +1,8 @@
//
// AppDelegate.swift
// dfg
//
// Created by Yonas Kolb on 29/9/18.
//
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
func applicationDidFinishLaunching(_ aNotification: Notification) {
// Insert code here to initialize your application
}
@@ -19,7 +10,4 @@ class AppDelegate: NSObject, NSApplicationDelegate {
func applicationWillTerminate(_ aNotification: Notification) {
// Insert code here to tear down your application
}
}
@@ -1,10 +1,3 @@
//
// ViewController.swift
// dfg
//
// Created by Yonas Kolb on 29/9/18.
//
import Cocoa
class ViewController: NSViewController {
@@ -17,10 +10,7 @@ class ViewController: NSViewController {
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
// Update the view, if already loaded.
}
}
}
@@ -1,5 +1,5 @@
import Result
import Foundation
import Result
import WatchKit
class InterfaceController: WKInterfaceController {
@@ -1,9 +1,9 @@
import Foundation
import PathKit
import ProjectSpec
import XcodeGenKit
import xcodeproj
import Foundation
import XCTest
import ProjectSpec
import PathKit
class GeneratedPerformanceTests: XCTestCase {
@@ -11,7 +11,7 @@ class GeneratedPerformanceTests: XCTestCase {
func testGeneration() throws {
let project = try Project.testProject(basePath: basePath)
self.measure {
measure {
let generator = ProjectGenerator(project: project)
_ = try! generator.generateXcodeProject()
}
@@ -21,7 +21,7 @@ class GeneratedPerformanceTests: XCTestCase {
let project = try Project.testProject(basePath: basePath)
let generator = ProjectGenerator(project: project)
let xcodeProject = try generator.generateXcodeProject()
self.measure {
measure {
xcodeProject.pbxproj.invalidateUUIDs()
try! xcodeProject.write(path: project.defaultProjectPath)
}
@@ -35,14 +35,14 @@ class FixturePerformanceTests: XCTestCase {
let specPath = fixturePath + "TestProject/project.yml"
func testFixtureDecoding() throws {
self.measure {
measure {
_ = try! Project(path: specPath)
}
}
func testFixtureGeneration() throws {
let project = try Project(path: specPath)
self.measure {
measure {
let generator = ProjectGenerator(project: project)
_ = try! generator.generateXcodeProject()
}
@@ -52,7 +52,7 @@ class FixturePerformanceTests: XCTestCase {
let project = try Project(path: specPath)
let generator = ProjectGenerator(project: project)
let xcodeProject = try generator.generateXcodeProject()
self.measure {
measure {
xcodeProject.pbxproj.invalidateUUIDs()
try! xcodeProject.write(path: project.defaultProjectPath)
}
+13 -13
View File
@@ -1,6 +1,6 @@
import Foundation
import ProjectSpec
import PathKit
import ProjectSpec
import xcodeproj
extension Project {
@@ -20,11 +20,11 @@ extension Project {
gatherCoverageData: true,
commandLineArguments: [
"--command": true,
"--command2": false
"--command2": false,
],
environmentVariables: [
XCScheme.EnvironmentVariable(variable: "ENV", value: "HELLO", enabled: true),
XCScheme.EnvironmentVariable(variable: "ENV2", value: "HELLO", enabled: false)
XCScheme.EnvironmentVariable(variable: "ENV2", value: "HELLO", enabled: false),
],
preActions: [Scheme.ExecutionAction(name: "run", script: "script")],
postActions: [Scheme.ExecutionAction(name: "run", script: "script")]
@@ -40,7 +40,7 @@ extension Project {
Dependency(type: .target, reference: "Framework2_\(platform)"),
Dependency(type: .carthage, reference: "Alamofire"),
Dependency(type: .carthage, reference: "BrightFutures"),
],
],
scheme: scheme
)
targets.append(appTarget)
@@ -57,7 +57,7 @@ extension Project {
Dependency(type: .target, reference: "App_\(platform)"),
Dependency(type: .target, reference: "Framework_\(platform)"),
Dependency(type: .target, reference: "Framework2_\(platform)"),
],
],
scheme: scheme
)
targets.append(testTarget)
@@ -71,10 +71,10 @@ extension Project {
platform: platform,
sources: [
TargetSource(path: "Framework_\(platform)"),
],
],
dependencies: [
Dependency(type: .carthage, reference: "Alamofire"),
],
],
scheme: scheme
)
targets.append(frameworkTarget)
@@ -91,7 +91,7 @@ extension Project {
Dependency(type: .target, reference: "Framework_\(platform)"),
Dependency(type: .carthage, reference: "Alamofire"),
Dependency(type: .carthage, reference: "BrightFutures"),
],
],
scheme: scheme
)
targets.append(frameworkTarget2)
@@ -115,7 +115,7 @@ extension Project {
Config(name: "Release Staging", type: .release),
Config(name: "Debug Production", type: .debug),
Config(name: "Release Production", type: .release),
],
],
targets: targets,
aggregateTargets: [],
settings: [:],
@@ -140,19 +140,19 @@ extension Project {
try path.mkpath()
paths.append(path)
for swiftFile in 1...swiftFilesPerDirectory {
for swiftFile in 1 ... swiftFilesPerDirectory {
let file = path + "file_\(swiftFile).swift"
try file.write("")
paths.append(file)
}
for resourceFile in 1...resourcesPerDirectory {
for resourceFile in 1 ... resourcesPerDirectory {
let file = path + "file_\(resourceFile).png"
try file.write("")
paths.append(file)
}
for objFile in 1...objFilesPerDirectory {
for objFile in 1 ... objFilesPerDirectory {
let header = path + "file_\(objFile).h"
try header.write("")
paths.append(header)
@@ -163,7 +163,7 @@ extension Project {
}
if depth < levels - 1 {
for directory in 1...directoriesPerLevel {
for directory in 1 ... directoriesPerLevel {
try createDirectory(path + "directory_\(directory)", depth: depth + 1)
}
}
@@ -22,9 +22,9 @@ fileprivate let framework = Target(
)
fileprivate let optionalFramework = Target(
name: "MyOptionalFramework",
type: .framework,
platform: .iOS
name: "MyOptionalFramework",
type: .framework,
platform: .iOS
)
fileprivate let uiTest = Target(
@@ -197,7 +197,7 @@ class ProjectGeneratorTests: XCTestCase {
targets: [
Target(name: "1", type: .application, platform: .iOS),
Target(name: "2", type: .framework, platform: .iOS),
]
]
)
var buildSettings = project.getProjectBuildSettings(config: project.configs.first!)
try expect(buildSettings["SDKROOT"] as? String) == "iphoneos"
@@ -828,7 +828,7 @@ class ProjectGeneratorTests: XCTestCase {
platform: .iOS,
dependencies: [
Dependency(type: .target, reference: "MyFramework"),
Dependency(type: .target, reference: "MyOptionalFramework", weakLink: true)
Dependency(type: .target, reference: "MyOptionalFramework", weakLink: true),
]
)
@@ -858,7 +858,7 @@ class ProjectGeneratorTests: XCTestCase {
try writer.writePlists()
guard let targetConfig = pbxProject.nativeTargets.first?.buildConfigurationList?.buildConfigurations.first else {
throw failure("Couldn't find Target config")
throw failure("Couldn't find Target config")
}
try expect(targetConfig.buildSettings["INFOPLIST_FILE"] as? String) == plist.path
@@ -877,7 +877,7 @@ class ProjectGeneratorTests: XCTestCase {
expectedInfoPlist["CFBundlePackageType"] = "APPL"
expectedInfoPlist["UISupportedInterfaceOrientations"] = ["UIInterfaceOrientationPortrait", "UIInterfaceOrientationLandscapeLeft"]
try expect(NSDictionary.init(dictionary: expectedInfoPlist).isEqual(to: infoPlist)).beTrue()
try expect(NSDictionary(dictionary: expectedInfoPlist).isEqual(to: infoPlist)).beTrue()
}
}
}
@@ -176,18 +176,18 @@ class ProjectSpecTests: XCTestCase {
$0.it("fails with invalid sdk dependency") {
var project = baseProject
project.targets = [Target(
name: "target1",
type: .application,
platform: .iOS,
dependencies: [Dependency(type: .sdk, reference: "invalidDependency")]
)
]
project.targets = [
Target(
name: "target1",
type: .application,
platform: .iOS,
dependencies: [Dependency(type: .sdk, reference: "invalidDependency")]
),
]
try expectValidationError(project, .invalidSDKDependency(target: "target1", dependency: "invalidDependency"))
try expectValidationError(project, .invalidSDKDependency(target: "target1", dependency: "invalidDependency"))
}
$0.it("fails with invalid scheme") {
var project = baseProject
project.schemes = [Scheme(
@@ -34,8 +34,6 @@ fileprivate let uiTest = Target(
class SchemeGeneratorTests: XCTestCase {
func testSchemes() {
describe {
@@ -55,7 +53,7 @@ class SchemeGeneratorTests: XCTestCase {
let xcodeProject = try project.generateXcodeProject()
guard let target = xcodeProject.pbxproj.nativeTargets
.first(where: { $0.name == app.name }) else {
throw failure("Target not found")
throw failure("Target not found")
}
guard let xcscheme = xcodeProject.sharedData?.schemes.first else {
throw failure("Scheme not found")
@@ -77,7 +75,7 @@ class SchemeGeneratorTests: XCTestCase {
xcscheme.launchAction?.buildableProductRunnable?.buildableReference,
xcscheme.profileAction?.buildableProductRunnable?.buildableReference,
xcscheme.testAction?.macroExpansion,
].compactMap { $0 }
].compactMap { $0 }
for buildableReference in buildableReferences {
// FIXME: try expect(buildableReference.blueprintIdentifier) == target.reference
@@ -96,7 +94,7 @@ class SchemeGeneratorTests: XCTestCase {
let runVariables: [XCScheme.EnvironmentVariable] = [
XCScheme.EnvironmentVariable(variable: "RUN_ENV", value: "ENABLED", enabled: true),
XCScheme.EnvironmentVariable(variable: "OTHER_RUN_ENV", value: "DISABLED", enabled: false),
]
]
let scheme = Scheme(
name: "EnvironmentVariablesScheme",
@@ -120,7 +118,7 @@ class SchemeGeneratorTests: XCTestCase {
try expect(
xcodeProject.pbxproj.nativeTargets
.contains(where: { $0.name == app.name })
).beTrue()
).beTrue()
try expect(xcscheme.launchAction?.environmentVariables) == runVariables
try expect(xcscheme.testAction?.environmentVariables).to.beNil()
try expect(xcscheme.profileAction?.environmentVariables).to.beNil()
@@ -135,7 +133,7 @@ class SchemeGeneratorTests: XCTestCase {
Config(name: "Production Debug", type: .debug),
Config(name: "Test Release", type: .release),
Config(name: "Production Release", type: .release),
]
]
let project = Project(basePath: "", name: "test", configs: configs, targets: [target, framework])
let xcodeProject = try project.generateXcodeProject()
@@ -144,7 +142,7 @@ class SchemeGeneratorTests: XCTestCase {
guard let xcscheme = xcodeProject.sharedData?.schemes
.first(where: { $0.name == "\(target.name) Test" }) else {
throw failure("Scheme not found")
throw failure("Scheme not found")
}
guard let buildActionEntry = xcscheme.buildAction?.buildActionEntries.first else {
throw failure("Build Action entry not found")
+19 -15
View File
@@ -163,15 +163,15 @@ class SpecLoadingTests: XCTestCase {
"path": "Info.plist",
"properties": [
"CFBundleName": "MyAppName",
"UIBackgroundModes": ["fetch"]
]
"UIBackgroundModes": ["fetch"],
],
]
let target = try Target(name: "", jsonDictionary: targetDictionary)
try expect(target.info) == Plist(path: "Info.plist", attributes: [
"CFBundleName": "MyAppName",
"UIBackgroundModes": ["fetch"]
])
"UIBackgroundModes": ["fetch"],
])
}
$0.it("parses entitlement plist") {
@@ -180,13 +180,13 @@ class SpecLoadingTests: XCTestCase {
"path": "app.entitlements",
"properties": [
"com.apple.security.application-groups": "com.group",
]
],
]
let target = try Target(name: "", jsonDictionary: targetDictionary)
try expect(target.entitlements) == Plist(path: "app.entitlements", attributes: [
"com.apple.security.application-groups": "com.group",
])
])
}
$0.it("parses cross platform targets") {
@@ -325,7 +325,7 @@ class SpecLoadingTests: XCTestCase {
],
],
"gatherCoverageData": true,
]
],
]
let scheme = try Scheme(name: "Scheme", jsonDictionary: schemeDictionary)
let expectedTargets: [Scheme.BuildTarget] = [
@@ -345,14 +345,18 @@ class SpecLoadingTests: XCTestCase {
try expect(scheme.build.parallelizeBuild) == false
try expect(scheme.build.buildImplicitDependencies) == false
let expectedTest = Scheme.Test(config: "debug",
gatherCoverageData: true,
targets: [
"Target1",
Scheme.Test.TestTarget(name: "Target2",
randomExecutionOrder: true,
parallelizable: true)
])
let expectedTest = Scheme.Test(
config: "debug",
gatherCoverageData: true,
targets: [
"Target1",
Scheme.Test.TestTarget(
name: "Target2",
randomExecutionOrder: true,
parallelizable: true
),
]
)
try expect(scheme.test) == expectedTest
}