Skip to content

Commit

Permalink
Merge pull request #32 from kiliankoe/re-add-library
Browse files Browse the repository at this point in the history
Re-add library
  • Loading branch information
kiliankoe authored Jul 29, 2023
2 parents b4f768e + c0a3cde commit 5cc83bb
Show file tree
Hide file tree
Showing 8 changed files with 55 additions and 32 deletions.
23 changes: 18 additions & 5 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ let package = Package(
products: [
.executable(
name: "swift-outdated",
targets: ["SwiftOutdated"])
targets: ["SwiftOutdated"]),
.library(
name: "Outdated",
targets: ["Outdated"]),
],
dependencies: [
.package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.0.0"),
Expand All @@ -22,16 +25,26 @@ let package = Package(
.package(url: "https://github.com/onevcat/Rainbow.git", from: "3.0.0"),
],
targets: [
.target(
name: "Outdated",
dependencies: [
.product(name: "Logging", package: "swift-log"),
"Files",
"Rainbow",
"ShellOut",
"SwiftyTextTable",
"Version",
]
),
.executableTarget(
name: "SwiftOutdated",
dependencies: [
"Outdated",
.product(name: "ArgumentParser", package: "swift-argument-parser"),
.product(name: "Logging", package: "swift-log"),
"Version",
"ShellOut",
"Files",
"SwiftyTextTable",
"Rainbow",
]),
]
),
]
)
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,31 @@ import Version
import SwiftyTextTable
import Rainbow

struct OutdatedPackage {
let package: String
let currentVersion: Version
let latestVersion: Version
let url: String
public struct OutdatedPackage {
public let package: String
public let currentVersion: Version
public let latestVersion: Version
public let url: String

public init(package: String, currentVersion: Version, latestVersion: Version, url: String) {
self.package = package
self.currentVersion = currentVersion
self.latestVersion = latestVersion
self.url = url
}
}

extension OutdatedPackage: Encodable {}

extension OutdatedPackage: TextTableRepresentable {
static let columnHeaders = [
public static let columnHeaders = [
"Package",
"Current",
"Latest",
"URL"
]

var tableValues: [CustomStringConvertible] {
public var tableValues: [CustomStringConvertible] {
let majorDiff = latestVersion.major - currentVersion.major
var latestVersion = self.latestVersion.description
switch majorDiff {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ struct PinV1: Decodable {
}
}


struct PinV2: Decodable {
let identity: String
let location: String
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,25 @@ import Foundation
import Files
import ShellOut
import Version
import Logging

let log = Logger(label: "SwiftOutdated")

public struct SwiftPackage: Hashable {
let package: String
let repositoryURL: String
let revision: String?
let version: Version?
public let package: String
public let repositoryURL: String
public let revision: String?
public let version: Version?
}

extension SwiftPackage: Encodable {}

extension SwiftPackage {
var hasResolvedVersion: Bool {
public var hasResolvedVersion: Bool {
self.version != nil
}

func availableVersions() -> [Version] {
public func availableVersions() -> [Version] {
do {
log.trace("Running git ls-remote for \(self.package).")
let lsRemote = try shellOut(
Expand Down Expand Up @@ -47,9 +50,8 @@ extension SwiftPackage {
}
}

static func currentPackagePins() throws -> [Self] {
public static func currentPackagePins() throws -> [Self] {
let file: File = try {

if let rootResolved = try? File(path: "Package.resolved") {
return rootResolved
} else if let rootResolved = try? File(path: ".package.resolved") {
Expand Down Expand Up @@ -107,12 +109,11 @@ extension SwiftPackage {


extension SwiftPackage {

enum Error: Swift.Error, LocalizedError {
public enum Error: Swift.Error, LocalizedError {
case notFound
case notReadable

var errorDescription: String? {
public var errorDescription: String? {
switch self {
case .notFound:
return "No Package.resolved found in current working tree."
Expand Down
7 changes: 7 additions & 0 deletions Sources/SwiftOutdated/PackageCollection.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import Foundation
import Outdated

struct PackageCollection: Encodable {
var outdatedPackages: [OutdatedPackage]
var ignoredPackages: [SwiftPackage]
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import ArgumentParser
import Dispatch
import Foundation
import Logging
import Outdated
import SwiftyTextTable
import Version
import Logging

let log = Logger(label: "SwiftOutdated")

@main
public struct Outdated: AsyncParsableCommand {
public struct SwiftOutdated: AsyncParsableCommand {
public init() {}

enum OutputFormat: String, ExpressibleByArgument {
Expand Down Expand Up @@ -36,7 +37,7 @@ public struct Outdated: AsyncParsableCommand {
swift-outdated automatically detects if it is run via an Xcode run script phase and will emit warnings for
Xcode's issue navigator.
""",
version: "0.5.1"
version: "0.6.0"
)

public func run() async throws {
Expand Down Expand Up @@ -146,8 +147,3 @@ public struct Outdated: AsyncParsableCommand {
}
}
}

struct PackageCollection: Encodable {
var outdatedPackages: [OutdatedPackage]
var ignoredPackages: [SwiftPackage]
}

0 comments on commit 5cc83bb

Please sign in to comment.