Skip to content

Commit

Permalink
Export URLs correctly (#158)
Browse files Browse the repository at this point in the history
* Export the correct dictionary

* Tidy up CSV exports
  • Loading branch information
ninxsoft authored Jan 25, 2024
1 parent 9e8768d commit ef064a5
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 5 deletions.
2 changes: 1 addition & 1 deletion Mist/Commands/List/ListFirmwareCommand.swift
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ struct ListFirmwareCommand: ParsableCommand {
}
}

try export(firmwares.map(\.dictionary), options: options)
try export(firmwares.map(\.exportDictionary), options: options)
!options.quiet ? PrettyPrint.print("Found \(firmwares.count) macOS Firmware(s) available for download\n", noAnsi: options.noAnsi, prefix: .ending) : Mist.noop()

if !firmwares.isEmpty {
Expand Down
29 changes: 26 additions & 3 deletions Mist/Extensions/Dictionary+Extension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,39 @@ import Yams
extension Dictionary where Key == String {
func firmwareCSVString() -> String {
guard
let signed: Bool = self["signed"] as? Bool,
let name: String = self["name"] as? String,
let version: String = self["version"] as? String,
let build: String = self["build"] as? String,
let size: Int64 = self["size"] as? Int64,
let date: String = self["date"] as? String else {
let url: String = self["url"] as? String,
let date: String = self["date"] as? String,
let compatible: Bool = self["compatible"] as? Bool,
let signed: Bool = self["signed"] as? Bool,
let beta: Bool = self["beta"] as? Bool else {
return ""
}

let string: String = "\(signed ? "YES" : "NO"),\"\(name)\",\"=\"\"\(version)\"\"\",\"=\"\"\(build)\"\"\",\(size),\(date)\n"
let nameString: String = "\"\(name)\""
let versionString: String = "\"=\"\"\(version)\"\"\""
let buildString: String = "\"=\"\"\(build)\"\"\""
let sizeString: String = "\(size)"
let urlString: String = "\"=\"\"\(url)\"\"\""
let dateString: String = "\(date)"
let compatibleString: String = "\(compatible ? "YES" : "NO")"
let signedString: String = "\(signed ? "YES" : "NO")"
let betaString: String = "\(beta ? "YES" : "NO")"

let string: String = [
nameString,
versionString,
buildString,
sizeString,
urlString,
dateString,
compatibleString,
signedString,
betaString
].joined(separator: ",") + "\n"
return string
}

Expand Down
2 changes: 1 addition & 1 deletion Mist/Extensions/Sequence+Extension.swift
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ extension Sequence where Iterator.Element == [String: Any] {
}

func firmwaresCSVString() -> String {
"Signed,Name,Version,Build,Size,Date,Compatible\n" + map { $0.firmwareCSVString() }.joined()
"Name,Version,Build,Size,URL,Date,Compatible,Signed,Beta\n" + map { $0.firmwareCSVString() }.joined()
}

func installersCSVString() -> String {
Expand Down

0 comments on commit ef064a5

Please sign in to comment.