From 6cdd9843a2d9a1567c83e268b80637548a1629e5 Mon Sep 17 00:00:00 2001 From: giginet Date: Tue, 1 Oct 2019 02:04:39 +0900 Subject: [PATCH 1/6] Update SwiftCLI --- Package.resolved | 4 ++-- Package.swift | 2 +- Sources/XcodeGenCLI/CommandRouter.swift | 20 -------------------- Sources/XcodeGenCLI/XcodeGenCLI.swift | 19 ++++++++++++++++++- 4 files changed, 21 insertions(+), 24 deletions(-) delete mode 100644 Sources/XcodeGenCLI/CommandRouter.swift diff --git a/Package.resolved b/Package.resolved index fa39b355..37b4836a 100644 --- a/Package.resolved +++ b/Package.resolved @@ -60,8 +60,8 @@ "repositoryURL": "https://github.com/jakeheis/SwiftCLI.git", "state": { "branch": null, - "revision": "5318c37d3cacc8780f50b87a8840a6774320ebdf", - "version": "5.2.2" + "revision": "ba2268e67c07b9f9cfbc0801385e6238b36255eb", + "version": "5.3.2" } }, { diff --git a/Package.swift b/Package.swift index ebbba726..86a84bb7 100644 --- a/Package.swift +++ b/Package.swift @@ -16,7 +16,7 @@ let package = Package( .package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0"), .package(url: "https://github.com/onevcat/Rainbow.git", from: "3.0.0"), .package(url: "https://github.com/tuist/xcodeproj.git", .exact("7.1.0")), - .package(url: "https://github.com/jakeheis/SwiftCLI.git", .exact("5.2.2")), + .package(url: "https://github.com/jakeheis/SwiftCLI.git", .exact("5.3.2")), ], targets: [ .target(name: "XcodeGen", dependencies: [ diff --git a/Sources/XcodeGenCLI/CommandRouter.swift b/Sources/XcodeGenCLI/CommandRouter.swift deleted file mode 100644 index aa23770a..00000000 --- a/Sources/XcodeGenCLI/CommandRouter.swift +++ /dev/null @@ -1,20 +0,0 @@ -import Foundation -import SwiftCLI - -class CommandRouter: Router { - - let defaultCommand: Command - - init(defaultCommand: Command) { - self.defaultCommand = defaultCommand - } - - func parse(commandGroup: CommandGroup, arguments: ArgumentList) throws -> (CommandPath, OptionRegistry) { - if !arguments.hasNext() || arguments.nextIsOption() { - arguments.manipulate { existing in - [defaultCommand.name] + existing - } - } - return try DefaultRouter().parse(commandGroup: commandGroup, arguments: arguments) - } -} diff --git a/Sources/XcodeGenCLI/XcodeGenCLI.swift b/Sources/XcodeGenCLI/XcodeGenCLI.swift index 6560ec6f..1fd3191e 100644 --- a/Sources/XcodeGenCLI/XcodeGenCLI.swift +++ b/Sources/XcodeGenCLI/XcodeGenCLI.swift @@ -3,6 +3,21 @@ import ProjectSpec import SwiftCLI public class XcodeGenCLI { + private class Manipulator: ArgumentListManipulator { + let commandName: String + + init(commandName: String) { + self.commandName = commandName + } + + func manipulate(arguments: ArgumentList) { + if !arguments.hasNext() || arguments.nextIsOption() { + arguments.manipulate { existing in + return [commandName] + existing + } + } + } + } let cli: CLI @@ -15,7 +30,9 @@ public class XcodeGenCLI { description: "Generates Xcode projects", commands: [generateCommand] ) - cli.parser = Parser(router: CommandRouter(defaultCommand: generateCommand)) + let manipulator = Manipulator(commandName: generateCommand.name) + cli.argumentListManipulators.insert(manipulator, at: 0) + cli.parser.routeBehavior = .searchWithFallback(generateCommand) } public func execute(arguments: [String]? = nil) { From d9a84fbbb3bcad01192559a4ce68437c4feb26a1 Mon Sep 17 00:00:00 2001 From: giginet Date: Wed, 2 Oct 2019 22:40:42 +0900 Subject: [PATCH 2/6] Use struct instead of class --- Sources/XcodeGenCLI/XcodeGenCLI.swift | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Sources/XcodeGenCLI/XcodeGenCLI.swift b/Sources/XcodeGenCLI/XcodeGenCLI.swift index 1fd3191e..517eeabf 100644 --- a/Sources/XcodeGenCLI/XcodeGenCLI.swift +++ b/Sources/XcodeGenCLI/XcodeGenCLI.swift @@ -3,13 +3,9 @@ import ProjectSpec import SwiftCLI public class XcodeGenCLI { - private class Manipulator: ArgumentListManipulator { + private struct Manipulator: ArgumentListManipulator { let commandName: String - init(commandName: String) { - self.commandName = commandName - } - func manipulate(arguments: ArgumentList) { if !arguments.hasNext() || arguments.nextIsOption() { arguments.manipulate { existing in From bf18e596cc541019f46a4cb0c9af5cd986d48558 Mon Sep 17 00:00:00 2001 From: giginet Date: Sat, 5 Oct 2019 18:11:31 +0900 Subject: [PATCH 3/6] Use upToNextMinor --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index 86a84bb7..51eb6175 100644 --- a/Package.swift +++ b/Package.swift @@ -16,7 +16,7 @@ let package = Package( .package(url: "https://github.com/kylef/Spectre.git", from: "0.9.0"), .package(url: "https://github.com/onevcat/Rainbow.git", from: "3.0.0"), .package(url: "https://github.com/tuist/xcodeproj.git", .exact("7.1.0")), - .package(url: "https://github.com/jakeheis/SwiftCLI.git", .exact("5.3.2")), + .package(url: "https://github.com/jakeheis/SwiftCLI.git", .upToNextMinor(from: "5.3.2")), ], targets: [ .target(name: "XcodeGen", dependencies: [ From 71922dae56c52d1d22bd6ed926b5e03a2b6f1929 Mon Sep 17 00:00:00 2001 From: giginet Date: Sat, 5 Oct 2019 18:14:54 +0900 Subject: [PATCH 4/6] Rename variables --- Sources/XcodeGenCLI/XcodeGenCLI.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/XcodeGenCLI/XcodeGenCLI.swift b/Sources/XcodeGenCLI/XcodeGenCLI.swift index 517eeabf..a2f401ee 100644 --- a/Sources/XcodeGenCLI/XcodeGenCLI.swift +++ b/Sources/XcodeGenCLI/XcodeGenCLI.swift @@ -4,12 +4,12 @@ import SwiftCLI public class XcodeGenCLI { private struct Manipulator: ArgumentListManipulator { - let commandName: String + let defaultCommand: String func manipulate(arguments: ArgumentList) { if !arguments.hasNext() || arguments.nextIsOption() { arguments.manipulate { existing in - return [commandName] + existing + return [defaultCommand] + existing } } } @@ -26,7 +26,7 @@ public class XcodeGenCLI { description: "Generates Xcode projects", commands: [generateCommand] ) - let manipulator = Manipulator(commandName: generateCommand.name) + let manipulator = Manipulator(defaultCommand: generateCommand.name) cli.argumentListManipulators.insert(manipulator, at: 0) cli.parser.routeBehavior = .searchWithFallback(generateCommand) } From 9fe176aab0085d3436620c58086da288e52db4a0 Mon Sep 17 00:00:00 2001 From: giginet Date: Sat, 5 Oct 2019 18:21:15 +0900 Subject: [PATCH 5/6] Update CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28f167b0..c0588d8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ #### Fixed - Fixed macOS unit test setting preset [#665](https://github.com/yonaskolb/XcodeGen/pull/665) @yonaskolb +#### Internal + +- Updated to SwiftCLI 5.3.2 [#667](https://github.com/yonaskolb/XcodeGen/pull/667) @giginet + ## 2.8.0 #### Added From 047856a3b22bd543b259f8affa576dc5f7fc2529 Mon Sep 17 00:00:00 2001 From: giginet Date: Sat, 5 Oct 2019 18:25:09 +0900 Subject: [PATCH 6/6] Remove manipulators --- Sources/XcodeGenCLI/XcodeGenCLI.swift | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/Sources/XcodeGenCLI/XcodeGenCLI.swift b/Sources/XcodeGenCLI/XcodeGenCLI.swift index a2f401ee..5a7e772c 100644 --- a/Sources/XcodeGenCLI/XcodeGenCLI.swift +++ b/Sources/XcodeGenCLI/XcodeGenCLI.swift @@ -3,18 +3,6 @@ import ProjectSpec import SwiftCLI public class XcodeGenCLI { - private struct Manipulator: ArgumentListManipulator { - let defaultCommand: String - - func manipulate(arguments: ArgumentList) { - if !arguments.hasNext() || arguments.nextIsOption() { - arguments.manipulate { existing in - return [defaultCommand] + existing - } - } - } - } - let cli: CLI public init(version: Version) { @@ -26,8 +14,6 @@ public class XcodeGenCLI { description: "Generates Xcode projects", commands: [generateCommand] ) - let manipulator = Manipulator(defaultCommand: generateCommand.name) - cli.argumentListManipulators.insert(manipulator, at: 0) cli.parser.routeBehavior = .searchWithFallback(generateCommand) }