diff --git a/.gitignore b/.gitignore index 2edc12f..569b318 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ DerivedData/ .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata .netrc *.zip +Binary/binary-dependencies-manager /.swiftpm diff --git a/Package.swift b/Package.swift index 940ca8b..83c610b 100644 --- a/Package.swift +++ b/Package.swift @@ -12,7 +12,7 @@ let package = Package( // Products define the executables and libraries a package produces, making them visible to other packages. .executable( name: "binary-dependencies-manager", - targets: ["BinaryDependenciesManager"] + targets: ["CommandLine"] ), ], dependencies: [ @@ -22,20 +22,32 @@ let package = Package( ], targets: [ - // Targets are the basic building blocks of a package, defining a module or a test suite. - // Targets can depend on other targets in this package and products from dependencies. + .executableTarget( - name: "BinaryDependenciesManager", + name: "CommandLine", dependencies: [ .product(name: "ArgumentParser", package: "swift-argument-parser"), + "BinaryDependencyManager", + "Utils", + ] + ), + + .target( + name: "BinaryDependencyManager", + dependencies: [ .product(name: "Crypto", package: "swift-crypto"), + "Utils", .product(name: "Yams", package: "Yams"), ] ), + + .target(name: "Utils"), .testTarget( - name: "DependenciesResolverTests", - dependencies: ["BinaryDependenciesManager"] + name: "BinaryDependencyManagerTests", + dependencies: [ + .target(name: "BinaryDependencyManager"), + ] ), ] ) diff --git a/Sources/BinaryDependencyManager/DepeneciesResolverRunner.swift b/Sources/BinaryDependencyManager/DepeneciesResolverRunner.swift index b5a3c37..8b95827 100644 --- a/Sources/BinaryDependencyManager/DepeneciesResolverRunner.swift +++ b/Sources/BinaryDependencyManager/DepeneciesResolverRunner.swift @@ -1,14 +1,25 @@ import Crypto import Foundation +import Utils -struct DependenciesResolverRunner { +public struct DependenciesResolverRunner { let dependenciesJSONPath: String let cacheDirectoryPath: String let outputDirectoryPath: String - - func run() throws { + + public init( + dependenciesJSONPath: String, + cacheDirectoryPath: String, + outputDirectoryPath: String + ) { + self.dependenciesJSONPath = dependenciesJSONPath + self.cacheDirectoryPath = cacheDirectoryPath + self.outputDirectoryPath = outputDirectoryPath + } + + public func run() throws { let dependencies = try runThrowable("Reading dependencies") { try readDependencies() } // resolve dependencies one by one diff --git a/Sources/BinaryDependencyManager/Commands/CleanCommand.swift b/Sources/CommandLine/Commands/CleanCommand.swift similarity index 98% rename from Sources/BinaryDependencyManager/Commands/CleanCommand.swift rename to Sources/CommandLine/Commands/CleanCommand.swift index b3e4d09..552b151 100644 --- a/Sources/BinaryDependencyManager/Commands/CleanCommand.swift +++ b/Sources/CommandLine/Commands/CleanCommand.swift @@ -1,5 +1,6 @@ import ArgumentParser import Foundation +import Utils struct CleanCommand: ParsableCommand { diff --git a/Sources/BinaryDependencyManager/Commands/ResolveCommand.swift b/Sources/CommandLine/Commands/ResolveCommand.swift similarity index 96% rename from Sources/BinaryDependencyManager/Commands/ResolveCommand.swift rename to Sources/CommandLine/Commands/ResolveCommand.swift index 6b2b5d2..e00e947 100644 --- a/Sources/BinaryDependencyManager/Commands/ResolveCommand.swift +++ b/Sources/CommandLine/Commands/ResolveCommand.swift @@ -1,4 +1,5 @@ import ArgumentParser +import BinaryDependencyManager struct ResolveCommand: ParsableCommand { diff --git a/Sources/BinaryDependencyManager/main.swift b/Sources/CommandLine/main.swift similarity index 100% rename from Sources/BinaryDependencyManager/main.swift rename to Sources/CommandLine/main.swift diff --git a/Sources/BinaryDependencyManager/Utils/Logging.swift b/Sources/Utils/Logging.swift similarity index 78% rename from Sources/BinaryDependencyManager/Utils/Logging.swift rename to Sources/Utils/Logging.swift index b84b658..61042e9 100644 --- a/Sources/BinaryDependencyManager/Utils/Logging.swift +++ b/Sources/Utils/Logging.swift @@ -1,5 +1,7 @@ -enum Logger { - static func log(_ message: String) { +import Foundation + +public enum Logger { + public static func log(_ message: String) { // extract [(.^] from the message)] and print it with green let message = message .replacingOccurrences(of: #"(\[.*?\])"#, with: "$1".green, options: .regularExpression) diff --git a/Sources/BinaryDependencyManager/Utils/Strings+Colored.swift b/Sources/Utils/Strings+Colored.swift similarity index 100% rename from Sources/BinaryDependencyManager/Utils/Strings+Colored.swift rename to Sources/Utils/Strings+Colored.swift diff --git a/Tests/BinaryDependencyManagerTests/BinaryDependenciesConfigurationReaderTests.swift b/Tests/BinaryDependencyManagerTests/BinaryDependenciesConfigurationReaderTests.swift index 1082d9c..3e8851e 100644 --- a/Tests/BinaryDependencyManagerTests/BinaryDependenciesConfigurationReaderTests.swift +++ b/Tests/BinaryDependencyManagerTests/BinaryDependenciesConfigurationReaderTests.swift @@ -1,4 +1,4 @@ -@testable import binary_dependencies_manager +@testable import BinaryDependencyManager import XCTest import Testing import Yams diff --git a/Tests/BinaryDependencyManagerTests/BinaryDependenciesConfigurationTests.swift b/Tests/BinaryDependencyManagerTests/BinaryDependenciesConfigurationTests.swift index ddc2b74..4a7fa6c 100644 --- a/Tests/BinaryDependencyManagerTests/BinaryDependenciesConfigurationTests.swift +++ b/Tests/BinaryDependencyManagerTests/BinaryDependenciesConfigurationTests.swift @@ -1,4 +1,4 @@ -@testable import binary_dependencies_manager +@testable import BinaryDependencyManager import XCTest import Testing import Yams diff --git a/Tests/BinaryDependencyManagerTests/BinaryDependencyManagerTests.swift b/Tests/BinaryDependencyManagerTests/BinaryDependencyManagerTests.swift new file mode 100644 index 0000000..2a64efd --- /dev/null +++ b/Tests/BinaryDependencyManagerTests/BinaryDependencyManagerTests.swift @@ -0,0 +1,9 @@ +import BinaryDependencyManager + +import XCTest + +final class BinaryDependencyManagerTests: XCTestCase { + func testExample() throws { + _ = DependenciesResolverRunner(dependenciesJSONPath: "", cacheDirectoryPath: "", outputDirectoryPath: "") + } +} diff --git a/Tests/BinaryDependencyManagerTests/Mocks/FileManagerProtocolMock.swift b/Tests/BinaryDependencyManagerTests/Mocks/FileManagerProtocolMock.swift index cb8ac55..17dc8b7 100644 --- a/Tests/BinaryDependencyManagerTests/Mocks/FileManagerProtocolMock.swift +++ b/Tests/BinaryDependencyManagerTests/Mocks/FileManagerProtocolMock.swift @@ -1,4 +1,4 @@ -@testable import binary_dependencies_manager +@testable import BinaryDependencyManager import Foundation class FileManagerProtocolMock: FileManagerProtocol { diff --git a/Tests/PrivateDependenciesResolverTests/PrivateDependenciesResolverTests.swift b/Tests/PrivateDependenciesResolverTests/PrivateDependenciesResolverTests.swift deleted file mode 100644 index f97c226..0000000 --- a/Tests/PrivateDependenciesResolverTests/PrivateDependenciesResolverTests.swift +++ /dev/null @@ -1,6 +0,0 @@ -@testable import BinaryDependenciesManager -import XCTest - -final class DependenciesResolverTests: XCTestCase { - func testExample() throws {} -}