import Foundation struct LoginItemManager { private static let plistPath: String = { let home = FileManager.default.homeDirectoryForCurrentUser.path return "\(home)/Library/LaunchAgents/com.grosfrumos.hudini.plist" }() static var isEnabled: Bool { FileManager.default.fileExists(atPath: plistPath) } static func setEnabled(_ enabled: Bool, appPath: String? = nil) { if enabled { let path = appPath ?? Bundle.main.bundlePath let plist = """ Label com.grosfrumos.hudini ProgramArguments open \(path) RunAtLoad """ // Ensure LaunchAgents dir exists let dir = (plistPath as NSString).deletingLastPathComponent try? FileManager.default.createDirectory(atPath: dir, withIntermediateDirectories: true) try? plist.write(toFile: plistPath, atomically: true, encoding: .utf8) } else { try? FileManager.default.removeItem(atPath: plistPath) } } }