Files
wehub-resource-sync 1d1286fadb
Build / Build and test (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:18:38 +08:00

61 lines
1.6 KiB
Swift

import Foundation
public struct BrewPackage: Identifiable, Hashable, Sendable, Codable {
public var id: String { "\(isCask ? "cask" : "formula"):\(name)" }
public let name: String
public let version: String
public let latestVersion: String
public let isCask: Bool
public let desc: String
public let homepage: String
public let isOutdated: Bool
public let isPinned: Bool
public let dependencies: [String]
public init(
name: String,
version: String,
latestVersion: String,
isCask: Bool,
desc: String,
homepage: String,
isOutdated: Bool,
isPinned: Bool,
dependencies: [String] = []
) {
self.name = name
self.version = version
self.latestVersion = latestVersion
self.isCask = isCask
self.desc = desc
self.homepage = homepage
self.isOutdated = isOutdated
self.isPinned = isPinned
self.dependencies = dependencies
}
public func requiredBy(in packages: [BrewPackage]) -> [String] {
packages.filter { $0.dependencies.contains(self.name) }.map { $0.name }
}
}
public struct BrewTap: Identifiable, Hashable, Sendable, Codable {
public var id: String { name }
public let name: String
public init(name: String) {
self.name = name
}
}
public struct BrewCommandLog: Identifiable, Sendable {
public let id = UUID()
public let text: String
public let isError: Bool
public init(text: String, isError: Bool = false) {
self.text = text
self.isError = isError
}
}