From 940635a84cb511b9412077951c8107717eb0140b Mon Sep 17 00:00:00 2001 From: Marcus Wu Date: Sat, 26 May 2018 15:06:41 +0800 Subject: [PATCH] Update dependency Move `Git`, `Bash` and `SwiftScriptRunner` to independen repo. --- Package.resolved | 46 +++++++++---------- Package.swift | 8 ++-- Sources/RedmineBot/main.swift | 1 + .../RedmineBotCore/API/CommentRequest.swift | 1 + .../Command/PostCommitHookCommand.swift | 1 + .../Command/PostRewriteHookCommand.swift | 1 + Sources/RedmineBotCore/Utility/Bash.swift | 39 ---------------- Sources/RedmineBotCore/Utility/Git.swift | 43 ----------------- .../Utility/Path+RedmineBot.swift | 1 + .../Utility/SwiftScriptRunner.swift | 28 ----------- Tests/RedmineBotTest/BashTest.swift | 1 + Tests/RedmineBotTest/GitTest.swift | 1 + Tests/RedmineBotTest/Utility/MockGit.swift | 1 + .../RedmineBotTest/Utility/TempGitRepo.swift | 1 + 14 files changed, 35 insertions(+), 138 deletions(-) delete mode 100644 Sources/RedmineBotCore/Utility/Bash.swift delete mode 100644 Sources/RedmineBotCore/Utility/Git.swift delete mode 100644 Sources/RedmineBotCore/Utility/SwiftScriptRunner.swift diff --git a/Package.resolved b/Package.resolved index f923b41..1021589 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,15 +1,6 @@ { "object": { "pins": [ - { - "package": "Alamofire", - "repositoryURL": "https://github.com/Alamofire/Alamofire.git", - "state": { - "branch": null, - "revision": "bfb9f132cdfa1033bea847e4cf9cfde4fee254e3", - "version": "4.7.0" - } - }, { "package": "CircuitBreaker", "repositoryURL": "https://github.com/IBM-Swift/CircuitBreaker.git", @@ -28,22 +19,13 @@ "version": "0.8.0" } }, - { - "package": "HTMLEntities", - "repositoryURL": "https://github.com/IBM-Swift/swift-html-entities", - "state": { - "branch": null, - "revision": "9112c12bc5cc2b20fcaf1393c65a9cbbfda5a155", - "version": "3.0.10" - } - }, { "package": "LoggerAPI", "repositoryURL": "https://github.com/IBM-Swift/LoggerAPI.git", "state": { "branch": null, - "revision": "ee0084cbb8bace59b3409cec05bedc5d2e97f8b7", - "version": "1.7.2" + "revision": "5041f2673aa75d6e973d9b6bd3956bc5068387c8", + "version": "1.7.3" } }, { @@ -60,8 +42,8 @@ "repositoryURL": "https://github.com/onevcat/Rainbow", "state": { "branch": null, - "revision": "f69961599ad524251d677fbec9e4bac57385d6fc", - "version": "3.1.1" + "revision": "797a68d0a642609424b08f11eb56974a54d5f6e2", + "version": "3.1.4" } }, { @@ -78,7 +60,25 @@ "repositoryURL": "https://github.com/kylef/Stencil", "state": { "branch": "master", - "revision": "91847208a3137cb572c4ab413bf54f31ee0e93a8", + "revision": "2e18892f4c02406a90cb96b2ebb1a2438c6655da", + "version": null + } + }, + { + "package": "HTMLEntities", + "repositoryURL": "https://github.com/IBM-Swift/swift-html-entities", + "state": { + "branch": null, + "revision": "9112c12bc5cc2b20fcaf1393c65a9cbbfda5a155", + "version": "3.0.10" + } + }, + { + "package": "SwiftCLIToolbox", + "repositoryURL": "https://github.com/marcuswu0814/SwiftCLIToolbox", + "state": { + "branch": "master", + "revision": "18ce2bcc328502db913fb26cfd674593acfb637d", "version": null } }, diff --git a/Package.swift b/Package.swift index a415d49..e0f3c3d 100644 --- a/Package.swift +++ b/Package.swift @@ -7,10 +7,8 @@ let package = Package( name: "RedmineBot", dependencies: [ .package(url: "https://github.com/IBM-Swift/SwiftyRequest.git", .upToNextMajor(from: "1.0.0")), - .package(url: "https://github.com/onevcat/Rainbow", from: "3.0.0"), - .package(url: "https://github.com/kylef/Commander", from: "0.8.0"), - .package(url: "https://github.com/kylef/Stencil", .branch("master")), - .package(url: "https://github.com/IBM-Swift/swift-html-entities", .upToNextMajor(from: "3.0.0")) + .package(url: "https://github.com/IBM-Swift/swift-html-entities", .upToNextMajor(from: "3.0.0")), + .package(url: "https://github.com/marcuswu0814/SwiftCLIToolbox", .branch("master")) ], targets: [ .target( @@ -18,7 +16,7 @@ let package = Package( dependencies: ["RedmineBotCore"]), .target( name: "RedmineBotCore", - dependencies: ["SwiftyRequest", "Rainbow", "Commander", "Stencil", "HTMLEntities"]), + dependencies: ["SwiftyRequest", "HTMLEntities", "SwiftCLIToolbox"]), .testTarget( name: "RedmineBotTest", dependencies: ["RedmineBotCore"]) diff --git a/Sources/RedmineBot/main.swift b/Sources/RedmineBot/main.swift index acd3a34..3d788ff 100644 --- a/Sources/RedmineBot/main.swift +++ b/Sources/RedmineBot/main.swift @@ -1,5 +1,6 @@ import Commander import RedmineBotCore +import Foundation Group { diff --git a/Sources/RedmineBotCore/API/CommentRequest.swift b/Sources/RedmineBotCore/API/CommentRequest.swift index 58349e0..44b1486 100644 --- a/Sources/RedmineBotCore/API/CommentRequest.swift +++ b/Sources/RedmineBotCore/API/CommentRequest.swift @@ -3,6 +3,7 @@ import SwiftyRequest import Stencil import PathKit import HTMLEntities +import SwiftCLIToolbox struct CommentContext { let content: String diff --git a/Sources/RedmineBotCore/Command/PostCommitHookCommand.swift b/Sources/RedmineBotCore/Command/PostCommitHookCommand.swift index 4447961..673edf9 100644 --- a/Sources/RedmineBotCore/Command/PostCommitHookCommand.swift +++ b/Sources/RedmineBotCore/Command/PostCommitHookCommand.swift @@ -1,6 +1,7 @@ import Foundation import Commander import PathKit +import SwiftCLIToolbox public class PostCommitHookCommand: CommandProtocol { diff --git a/Sources/RedmineBotCore/Command/PostRewriteHookCommand.swift b/Sources/RedmineBotCore/Command/PostRewriteHookCommand.swift index 1553e06..9dc892c 100644 --- a/Sources/RedmineBotCore/Command/PostRewriteHookCommand.swift +++ b/Sources/RedmineBotCore/Command/PostRewriteHookCommand.swift @@ -1,6 +1,7 @@ import Foundation import PathKit import Commander +import SwiftCLIToolbox public class PostRewriteHookCommand: CommandProtocol { diff --git a/Sources/RedmineBotCore/Utility/Bash.swift b/Sources/RedmineBotCore/Utility/Bash.swift deleted file mode 100644 index 497d45a..0000000 --- a/Sources/RedmineBotCore/Utility/Bash.swift +++ /dev/null @@ -1,39 +0,0 @@ -import Foundation - -public protocol BashProtocol { - - static func run(_ command: String, arguments: [String]?) -> String? - -} - -public struct Bash: BashProtocol { - - public static func run(_ command: String, arguments: [String]?) -> String? { - var args = [command] - - if let arguments = arguments { - args.append(contentsOf: arguments) - } - - return shell(launchPath: "/usr/bin/env", arguments: args) - } - - private static func shell(launchPath: String, arguments: [String]?) -> String? { - let task = Process() - task.launchPath = launchPath - - if let args = arguments?.filter({ $0 != "" }) { - task.arguments = args - } - - let pipe = Pipe() - task.standardOutput = pipe - task.launch() - - let data = pipe.fileHandleForReading.readDataToEndOfFile() - let output = String(data: data, encoding: .utf8) - - return output - } - -} diff --git a/Sources/RedmineBotCore/Utility/Git.swift b/Sources/RedmineBotCore/Utility/Git.swift deleted file mode 100644 index a8bef52..0000000 --- a/Sources/RedmineBotCore/Utility/Git.swift +++ /dev/null @@ -1,43 +0,0 @@ -import Foundation - -public protocol GitProtocol { - - static func authorName(_ sha: String) -> String? - - static func commitTitle(_ sha: String) -> String? - - static func commitMessage(_ sha: String) -> String? - - static func repoName() -> String? - - static func branchName() -> String? - -} - -public struct Git: GitProtocol { - - public static func repoName() -> String? { - guard let repoPath = Bash.run("git", arguments: ["rev-parse", "--show-toplevel"]) else { - return nil - } - - return Bash.run("basename", arguments: [repoPath])?.trimmingCharacters(in: .whitespacesAndNewlines) - } - - public static func branchName() -> String? { - return Bash.run("git", arguments: ["rev-parse", "--abbrev-ref", "HEAD"])?.trimmingCharacters(in: .whitespacesAndNewlines) - } - - public static func authorName(_ sha: String) -> String? { - return Bash.run("git", arguments: ["show", sha, "--quiet", "--pretty=format:%an"]) - } - - public static func commitTitle(_ sha: String) -> String? { - return Bash.run("git", arguments: ["show", sha, "--oneline", "--quiet"]) - } - - public static func commitMessage(_ sha: String) -> String? { - return Bash.run("git", arguments: ["show", sha, "--quiet"]) - } - -} diff --git a/Sources/RedmineBotCore/Utility/Path+RedmineBot.swift b/Sources/RedmineBotCore/Utility/Path+RedmineBot.swift index a65f5df..4884a36 100644 --- a/Sources/RedmineBotCore/Utility/Path+RedmineBot.swift +++ b/Sources/RedmineBotCore/Utility/Path+RedmineBot.swift @@ -1,4 +1,5 @@ import PathKit +import SwiftCLIToolbox extension Path { diff --git a/Sources/RedmineBotCore/Utility/SwiftScriptRunner.swift b/Sources/RedmineBotCore/Utility/SwiftScriptRunner.swift deleted file mode 100644 index 9f8a84b..0000000 --- a/Sources/RedmineBotCore/Utility/SwiftScriptRunner.swift +++ /dev/null @@ -1,28 +0,0 @@ -// https://github.com/mgrebenets/SwiftScriptRunner - -import Foundation - -open class SwiftScriptRunner { - - private var count = 0 - - private let runLoop = RunLoop.current - - public init() {} - - open func lock() { - count += 1 - } - - open func unlock() { - count -= 1 - } - - open func wait() { - while count > 0 && - runLoop.run(mode: .defaultRunLoopMode, - before: Date(timeIntervalSinceNow: 0.1)) { - } - } -} - diff --git a/Tests/RedmineBotTest/BashTest.swift b/Tests/RedmineBotTest/BashTest.swift index 7d225d6..f87c6e4 100644 --- a/Tests/RedmineBotTest/BashTest.swift +++ b/Tests/RedmineBotTest/BashTest.swift @@ -1,6 +1,7 @@ import XCTest import Foundation import PathKit +import SwiftCLIToolbox @testable import RedmineBotCore class BashTest: XCTestCase { diff --git a/Tests/RedmineBotTest/GitTest.swift b/Tests/RedmineBotTest/GitTest.swift index 54e0a85..a0044bd 100644 --- a/Tests/RedmineBotTest/GitTest.swift +++ b/Tests/RedmineBotTest/GitTest.swift @@ -1,6 +1,7 @@ import XCTest import Foundation import PathKit +import SwiftCLIToolbox @testable import RedmineBotCore class GitTest: XCTestCase { diff --git a/Tests/RedmineBotTest/Utility/MockGit.swift b/Tests/RedmineBotTest/Utility/MockGit.swift index 13e91d1..c3df1ef 100644 --- a/Tests/RedmineBotTest/Utility/MockGit.swift +++ b/Tests/RedmineBotTest/Utility/MockGit.swift @@ -1,3 +1,4 @@ +import SwiftCLIToolbox @testable import RedmineBotCore class MockGit: GitProtocol { diff --git a/Tests/RedmineBotTest/Utility/TempGitRepo.swift b/Tests/RedmineBotTest/Utility/TempGitRepo.swift index 89380bb..e61008d 100644 --- a/Tests/RedmineBotTest/Utility/TempGitRepo.swift +++ b/Tests/RedmineBotTest/Utility/TempGitRepo.swift @@ -1,5 +1,6 @@ import Foundation import PathKit +import SwiftCLIToolbox @testable import RedmineBotCore struct TempGitRepo {