diff --git a/Package.resolved b/Package.resolved index f85bcd6..74c0c4d 100644 --- a/Package.resolved +++ b/Package.resolved @@ -78,8 +78,8 @@ "repositoryURL": "https://github.com/Einstore/ShellKit.git", "state": { "branch": null, - "revision": "0e7e238feeac519211881afa66bfd75add84825c", - "version": "1.0.0" + "revision": "e0a36d3d1622de65f9572130e0824e57c9241273", + "version": "1.1.0" } }, { @@ -105,8 +105,8 @@ "repositoryURL": "https://github.com/apple/swift-nio.git", "state": { "branch": null, - "revision": "7f20464df31e85f86bedf4a8afdd1785e0cb5059", - "version": "2.3.0" + "revision": "334815f6580b5256409d48431751938c4e966e72", + "version": "2.4.0" } }, { diff --git a/Package.swift b/Package.swift index e072358..79d0701 100644 --- a/Package.swift +++ b/Package.swift @@ -40,7 +40,7 @@ let package = Package( .target( name: "SystemManager", dependencies: [ - "ShellKit", + "CommandKit", "SystemModel" ] ), diff --git a/Sources/SystemManager/Model/Os.swift b/Sources/SystemManager/Model/Os.swift index d7942e0..eff9328 100644 --- a/Sources/SystemManager/Model/Os.swift +++ b/Sources/SystemManager/Model/Os.swift @@ -5,24 +5,10 @@ // Created by Ondrej Rafaj on 09/07/2019. // -import Foundation +import CommandKit -public enum Os: Command { - - case macOs - - case linux - - case cygwin - - case minGW - - case other(String) - - public static var command: String { - return "uname -s" - } +extension Cmd.Os: Command { public func serialize() -> String { switch self { @@ -39,7 +25,7 @@ public enum Os: Command { } } - public static func deserialize(_ string: String) -> Os { + public static func deserialize(_ string: String) -> Cmd.Os { switch true { case string == "macOs": return .macOs @@ -56,30 +42,14 @@ public enum Os: Command { } } - public static func parse(_ string: String) -> Os { - let string = string.trimmingCharacters(in: .whitespacesAndNewlines) - switch true { - case string == "Darwin": - return .macOs - case string == "Linux": - return .linux - case string == "CYGWIN": - return .cygwin - case string == "MINGW": - return .minGW - default: - return .other(string) - } - } - public init(from decoder: Decoder) throws { let container = try decoder.singleValueContainer() let string = try container.decode(String.self) - self = Os.deserialize(string) + self = Cmd.Os.deserialize(string) } public init(from string: String) { - self = Os.deserialize(string) + self = Cmd.Os.deserialize(string) } public func encode(to encoder: Encoder) throws { diff --git a/Sources/SystemManager/SystemManager.swift b/Sources/SystemManager/SystemManager.swift index aa3cad5..57dfab8 100644 --- a/Sources/SystemManager/SystemManager.swift +++ b/Sources/SystemManager/SystemManager.swift @@ -5,7 +5,7 @@ // Created by Ondrej Rafaj on 09/07/2019. // -import ShellKit +import CommandKit import SystemModel @@ -25,13 +25,7 @@ public class SystemManager { shell = try Shell(conn, on: eventLoop) } - public func os() -> EventLoopFuture { - return shell.run(bash: Os.command).map { output in - return Os.parse(output) - } - } - - public func cores(os: Os) -> EventLoopFuture { + public func cores(os: Cmd.Os) -> EventLoopFuture { switch os { case .macOs: return self.shell.run(bash: Sysctl.command).map { output in @@ -62,7 +56,7 @@ public class SystemManager { } } - public func stats(os: Os) -> EventLoopFuture { + public func stats(os: Cmd.Os) -> EventLoopFuture { switch os { case .macOs: return self.shell.run(bash: SystemInfo.Stats.Mac.command).map { output in @@ -80,7 +74,7 @@ public class SystemManager { } public func info() -> EventLoopFuture { - return os().flatMap { os in + return shell.cmd.os().flatMap { os in switch os { case .macOs: return self.macOsInfo()