Utilities: add age helper for menu health label
This commit is contained in:
@@ -96,6 +96,22 @@ enum LaunchAgentManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Human-friendly age string (e.g., "2m ago").
|
||||||
|
func age(from date: Date, now: Date = .init()) -> String {
|
||||||
|
let seconds = max(0, Int(now.timeIntervalSince(date)))
|
||||||
|
let minutes = seconds / 60
|
||||||
|
let hours = minutes / 60
|
||||||
|
let days = hours / 24
|
||||||
|
|
||||||
|
if seconds < 60 { return "just now" }
|
||||||
|
if minutes == 1 { return "1 minute ago" }
|
||||||
|
if minutes < 60 { return "\(minutes)m ago" }
|
||||||
|
if hours == 1 { return "1 hour ago" }
|
||||||
|
if hours < 24 { return "\(hours)h ago" }
|
||||||
|
if days == 1 { return "yesterday" }
|
||||||
|
return "\(days)d ago"
|
||||||
|
}
|
||||||
|
|
||||||
@MainActor
|
@MainActor
|
||||||
enum CLIInstaller {
|
enum CLIInstaller {
|
||||||
static func installedLocation() -> String? {
|
static func installedLocation() -> String? {
|
||||||
|
|||||||
Reference in New Issue
Block a user