diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index c2b4040..2599bff 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -3,7 +3,7 @@ # # https://docs.github.com/en/actions/reference/environment-variables#default-environment-variables -name: Build & Test +name: Build, Test, and Lint on: [push] @@ -11,6 +11,7 @@ jobs: build-test: # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners + name: Build, Test, and Lint runs-on: macOS-latest steps: @@ -31,3 +32,6 @@ jobs: - name: Test run: script/test + + - name: Lint + run: script/lint diff --git a/Makefile b/Makefile index 1370e54..b5088bc 100644 --- a/Makefile +++ b/Makefile @@ -89,7 +89,7 @@ uninstall: script/uninstall .PHONY: format -lint: +format: script/format .PHONY: lint diff --git a/Package.resolved b/Package.resolved index f58a362..1e67a12 100644 --- a/Package.resolved +++ b/Package.resolved @@ -68,9 +68,9 @@ "package": "swift-format", "repositoryURL": "https://github.com/apple/swift-format", "state": { - "branch": null, + "branch": "swift-5.4-branch", "revision": "9c15831b798d767c9af0927a931de5d557004936", - "version": "0.50400.0" + "version": null } }, { diff --git a/Package.swift b/Package.swift index 843814e..b289649 100644 --- a/Package.swift +++ b/Package.swift @@ -70,12 +70,12 @@ let package = Package( swiftLanguageVersions: [.v5] ) -#if swift(>=5.4) +#if compiler(>=5.4) package.dependencies += [ - .package(url: "https://github.com/apple/swift-format", from: "0.50400.0") + .package(url: "https://github.com/apple/swift-format", .branch("swift-5.4-branch")) ] -#elseif swift(>=5.3) +#elseif compiler(>=5.3) package.dependencies += [ - .package(url: "https://github.com/apple/swift-format", from: "0.50300.0") + .package(url: "https://github.com/apple/swift-format", .branch("swift-5.3-branch")) ] #endif diff --git a/README.md b/README.md index b91f9e3..22faea5 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ A simple command line interface for the Mac App Store. Designed for scripting an [![Swift 5](https://img.shields.io/badge/Language-Swift_5-orange.svg)](https://swift.org) [![GitHub Release](https://img.shields.io/github/release/mas-cli/mas.svg)](https://github.com/mas-cli/mas/releases) [![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com) -[![Build & Test](https://github.com/mas-cli/mas/actions/workflows/build-test.yml/badge.svg?branch=main)](https://github.com/mas-cli/mas/actions/workflows/build-test.yml?query=branch%3Amain) +[![Build, Test, & Lint](https://github.com/mas-cli/mas/actions/workflows/build-test.yml/badge.svg?branch=main)](https://github.com/mas-cli/mas/actions/workflows/build-test.yml?query=branch%3Amain) ## 📲 Install diff --git a/Sources/MasKit/AppStore/Downloader.swift b/Sources/MasKit/AppStore/Downloader.swift index 831b6d0..2b631ad 100644 --- a/Sources/MasKit/AppStore/Downloader.swift +++ b/Sources/MasKit/AppStore/Downloader.swift @@ -20,11 +20,13 @@ import StoreFoundation func downloadAll(_ appIDs: [UInt64], purchase: Bool = false) -> Promise { var firstError: Error? return appIDs.reduce(Guarantee.value(())) { previous, appID in - previous.then { downloadWithRetries(appID, purchase: purchase).recover { error in - if firstError == nil { - firstError = error + previous.then { + downloadWithRetries(appID, purchase: purchase).recover { error in + if firstError == nil { + firstError = error + } } - } } + } }.done { if let error = firstError { throw error @@ -42,7 +44,8 @@ private func downloadWithRetries( // If the download failed due to network issues, try again. Otherwise, fail immediately. guard case MASError.downloadFailed(let downloadError) = error, - case NSURLErrorDomain = downloadError?.domain else { + case NSURLErrorDomain = downloadError?.domain + else { throw error } diff --git a/Sources/MasKit/Commands/Outdated.swift b/Sources/MasKit/Commands/Outdated.swift index da3c604..fcb26c2 100644 --- a/Sources/MasKit/Commands/Outdated.swift +++ b/Sources/MasKit/Commands/Outdated.swift @@ -9,6 +9,7 @@ import Commandant import Foundation import PromiseKit + import enum Swift.Result /// Command which displays a list of installed apps which have available updates diff --git a/Sources/MasKit/Commands/Upgrade.swift b/Sources/MasKit/Commands/Upgrade.swift index a48384a..1fdb75c 100644 --- a/Sources/MasKit/Commands/Upgrade.swift +++ b/Sources/MasKit/Commands/Upgrade.swift @@ -9,6 +9,7 @@ import Commandant import Foundation import PromiseKit + import enum Swift.Result /// Command which upgrades apps with new versions available in the Mac App Store. diff --git a/Tests/MasKitTests/Commands/AccountCommandSpec.swift b/Tests/MasKitTests/Commands/AccountCommandSpec.swift index 3a84b72..f2473cd 100644 --- a/Tests/MasKitTests/Commands/AccountCommandSpec.swift +++ b/Tests/MasKitTests/Commands/AccountCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class AccountCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Commands/HomeCommandSpec.swift b/Tests/MasKitTests/Commands/HomeCommandSpec.swift index 8630ec8..ece1252 100644 --- a/Tests/MasKitTests/Commands/HomeCommandSpec.swift +++ b/Tests/MasKitTests/Commands/HomeCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class HomeCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { let result = SearchResult( trackId: 1111, trackViewUrl: "mas preview url", diff --git a/Tests/MasKitTests/Commands/InfoCommandSpec.swift b/Tests/MasKitTests/Commands/InfoCommandSpec.swift index a8893ef..b2bdc9c 100644 --- a/Tests/MasKitTests/Commands/InfoCommandSpec.swift +++ b/Tests/MasKitTests/Commands/InfoCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class InfoCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { let result = SearchResult( currentVersionReleaseDate: "2019-01-07T18:53:13Z", fileSizeBytes: "1024", diff --git a/Tests/MasKitTests/Commands/InstallCommandSpec.swift b/Tests/MasKitTests/Commands/InstallCommandSpec.swift index f0402a0..06b4bcd 100644 --- a/Tests/MasKitTests/Commands/InstallCommandSpec.swift +++ b/Tests/MasKitTests/Commands/InstallCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class InstallCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Commands/ListCommandSpec.swift b/Tests/MasKitTests/Commands/ListCommandSpec.swift index aa834ae..7b47f84 100644 --- a/Tests/MasKitTests/Commands/ListCommandSpec.swift +++ b/Tests/MasKitTests/Commands/ListCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class ListCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Commands/LuckyCommandSpec.swift b/Tests/MasKitTests/Commands/LuckyCommandSpec.swift index 6107f66..ec7cd03 100644 --- a/Tests/MasKitTests/Commands/LuckyCommandSpec.swift +++ b/Tests/MasKitTests/Commands/LuckyCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class LuckyCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Commands/OpenCommandSpec.swift b/Tests/MasKitTests/Commands/OpenCommandSpec.swift index 7c3a2ee..c01dcd4 100644 --- a/Tests/MasKitTests/Commands/OpenCommandSpec.swift +++ b/Tests/MasKitTests/Commands/OpenCommandSpec.swift @@ -13,7 +13,7 @@ import Quick @testable import MasKit public class OpenCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { let result = SearchResult( trackId: 1111, trackViewUrl: "fakescheme://some/url", diff --git a/Tests/MasKitTests/Commands/OutdatedCommandSpec.swift b/Tests/MasKitTests/Commands/OutdatedCommandSpec.swift index f8fef58..bc8d0ca 100644 --- a/Tests/MasKitTests/Commands/OutdatedCommandSpec.swift +++ b/Tests/MasKitTests/Commands/OutdatedCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class OutdatedCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Commands/PurchaseCommandSpec.swift b/Tests/MasKitTests/Commands/PurchaseCommandSpec.swift index e35d43b..6ead96d 100644 --- a/Tests/MasKitTests/Commands/PurchaseCommandSpec.swift +++ b/Tests/MasKitTests/Commands/PurchaseCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class PurchaseCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Commands/ResetCommandSpec.swift b/Tests/MasKitTests/Commands/ResetCommandSpec.swift index 1763b09..cefa4d3 100644 --- a/Tests/MasKitTests/Commands/ResetCommandSpec.swift +++ b/Tests/MasKitTests/Commands/ResetCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class ResetCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Commands/SearchCommandSpec.swift b/Tests/MasKitTests/Commands/SearchCommandSpec.swift index b10d9fe..7e2e98d 100644 --- a/Tests/MasKitTests/Commands/SearchCommandSpec.swift +++ b/Tests/MasKitTests/Commands/SearchCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class SearchCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { let result = SearchResult( trackId: 1111, trackName: "slack", diff --git a/Tests/MasKitTests/Commands/SignInCommandSpec.swift b/Tests/MasKitTests/Commands/SignInCommandSpec.swift index f9852a1..7d386ce 100644 --- a/Tests/MasKitTests/Commands/SignInCommandSpec.swift +++ b/Tests/MasKitTests/Commands/SignInCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class SignInCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Commands/SignOutCommandSpec.swift b/Tests/MasKitTests/Commands/SignOutCommandSpec.swift index 94bcfe9..2e13782 100644 --- a/Tests/MasKitTests/Commands/SignOutCommandSpec.swift +++ b/Tests/MasKitTests/Commands/SignOutCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class SignOutCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Commands/UninstallCommandSpec.swift b/Tests/MasKitTests/Commands/UninstallCommandSpec.swift index 3d100fb..5aafeac 100644 --- a/Tests/MasKitTests/Commands/UninstallCommandSpec.swift +++ b/Tests/MasKitTests/Commands/UninstallCommandSpec.swift @@ -13,7 +13,7 @@ import Quick @testable import MasKit public class UninstallCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Commands/UpgradeCommandSpec.swift b/Tests/MasKitTests/Commands/UpgradeCommandSpec.swift index 01011e8..a41cb1c 100644 --- a/Tests/MasKitTests/Commands/UpgradeCommandSpec.swift +++ b/Tests/MasKitTests/Commands/UpgradeCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class UpgradeCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Commands/VendorCommandSpec.swift b/Tests/MasKitTests/Commands/VendorCommandSpec.swift index d1dbbd5..5e342cb 100644 --- a/Tests/MasKitTests/Commands/VendorCommandSpec.swift +++ b/Tests/MasKitTests/Commands/VendorCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class VendorCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { let result = SearchResult( trackId: 1111, trackViewUrl: "https://awesome.app", diff --git a/Tests/MasKitTests/Commands/VersionCommandSpec.swift b/Tests/MasKitTests/Commands/VersionCommandSpec.swift index 7abd19e..b0fe53a 100644 --- a/Tests/MasKitTests/Commands/VersionCommandSpec.swift +++ b/Tests/MasKitTests/Commands/VersionCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class VersionCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Controllers/MasAppLibrarySpec.swift b/Tests/MasKitTests/Controllers/MasAppLibrarySpec.swift index d5bec75..9409879 100644 --- a/Tests/MasKitTests/Controllers/MasAppLibrarySpec.swift +++ b/Tests/MasKitTests/Controllers/MasAppLibrarySpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class MasAppLibrarySpec: QuickSpec { - public override func spec() { + override public func spec() { let library = MasAppLibrary(softwareMap: SoftwareMapMock(products: apps)) beforeSuite { diff --git a/Tests/MasKitTests/Controllers/MasStoreSearchSpec.swift b/Tests/MasKitTests/Controllers/MasStoreSearchSpec.swift index 4599b78..f709fa3 100644 --- a/Tests/MasKitTests/Controllers/MasStoreSearchSpec.swift +++ b/Tests/MasKitTests/Controllers/MasStoreSearchSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class MasStoreSearchSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Controllers/StoreSearchMock.swift b/Tests/MasKitTests/Controllers/StoreSearchMock.swift index 2873e60..69f518d 100644 --- a/Tests/MasKitTests/Controllers/StoreSearchMock.swift +++ b/Tests/MasKitTests/Controllers/StoreSearchMock.swift @@ -7,6 +7,7 @@ // import PromiseKit + @testable import MasKit class StoreSearchMock: StoreSearch { diff --git a/Tests/MasKitTests/Controllers/StoreSearchSpec.swift b/Tests/MasKitTests/Controllers/StoreSearchSpec.swift index 59c1520..b391e08 100644 --- a/Tests/MasKitTests/Controllers/StoreSearchSpec.swift +++ b/Tests/MasKitTests/Controllers/StoreSearchSpec.swift @@ -9,6 +9,7 @@ import Nimble import PromiseKit import Quick + @testable import MasKit /// Protocol minimal implementation @@ -23,7 +24,7 @@ struct StoreSearchForTesting: StoreSearch { } public class StoreSearchSpec: QuickSpec { - public override func spec() { + override public func spec() { let storeSearch = StoreSearchForTesting() describe("url string") { diff --git a/Tests/MasKitTests/ExternalCommands/OpenSystemCommandSpec.swift b/Tests/MasKitTests/ExternalCommands/OpenSystemCommandSpec.swift index 13236e7..9e479fc 100644 --- a/Tests/MasKitTests/ExternalCommands/OpenSystemCommandSpec.swift +++ b/Tests/MasKitTests/ExternalCommands/OpenSystemCommandSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class OpenSystemCommandSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Formatters/AppListFormatterSpec.swift b/Tests/MasKitTests/Formatters/AppListFormatterSpec.swift index 147d8b7..91b6faf 100644 --- a/Tests/MasKitTests/Formatters/AppListFormatterSpec.swift +++ b/Tests/MasKitTests/Formatters/AppListFormatterSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class AppListsFormatterSpec: QuickSpec { - public override func spec() { + override public func spec() { // static func reference let format = AppListFormatter.format(products:) var products: [SoftwareProduct] = [] diff --git a/Tests/MasKitTests/Formatters/SearchResultFormatterSpec.swift b/Tests/MasKitTests/Formatters/SearchResultFormatterSpec.swift index 00d1fec..1fe7fb7 100644 --- a/Tests/MasKitTests/Formatters/SearchResultFormatterSpec.swift +++ b/Tests/MasKitTests/Formatters/SearchResultFormatterSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class SearchResultsFormatterSpec: QuickSpec { - public override func spec() { + override public func spec() { // static func reference let format = SearchResultFormatter.format(results:includePrice:) var results: [SearchResult] = [] diff --git a/Tests/MasKitTests/Models/SearchResultListSpec.swift b/Tests/MasKitTests/Models/SearchResultListSpec.swift index 6cb11d4..137c907 100644 --- a/Tests/MasKitTests/Models/SearchResultListSpec.swift +++ b/Tests/MasKitTests/Models/SearchResultListSpec.swift @@ -13,7 +13,7 @@ import Quick @testable import MasKit public class SearchResultListSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Models/SearchResultSpec.swift b/Tests/MasKitTests/Models/SearchResultSpec.swift index be149d2..563946b 100644 --- a/Tests/MasKitTests/Models/SearchResultSpec.swift +++ b/Tests/MasKitTests/Models/SearchResultSpec.swift @@ -13,7 +13,7 @@ import Quick @testable import MasKit public class SearchResultSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() } diff --git a/Tests/MasKitTests/Network/NetworkManagerTests.swift b/Tests/MasKitTests/Network/NetworkManagerTests.swift index 71b291d..1d73534 100644 --- a/Tests/MasKitTests/Network/NetworkManagerTests.swift +++ b/Tests/MasKitTests/Network/NetworkManagerTests.swift @@ -11,7 +11,7 @@ import XCTest @testable import MasKit class NetworkManagerTests: XCTestCase { - public override func setUp() { + override public func setUp() { super.setUp() MasKit.initialize() } diff --git a/Tests/MasKitTests/Network/NetworkSessionMock.swift b/Tests/MasKitTests/Network/NetworkSessionMock.swift index 5455aeb..8715858 100644 --- a/Tests/MasKitTests/Network/NetworkSessionMock.swift +++ b/Tests/MasKitTests/Network/NetworkSessionMock.swift @@ -8,6 +8,7 @@ import Foundation import PromiseKit + @testable import MasKit /// Mock NetworkSession for testing. diff --git a/Tests/MasKitTests/OutputListenerSpec.swift b/Tests/MasKitTests/OutputListenerSpec.swift index 8505a72..f793f19 100644 --- a/Tests/MasKitTests/OutputListenerSpec.swift +++ b/Tests/MasKitTests/OutputListenerSpec.swift @@ -12,7 +12,7 @@ import Quick @testable import MasKit public class OutputListenerSpec: QuickSpec { - public override func spec() { + override public func spec() { beforeSuite { MasKit.initialize() }