gh-XcodesOrg-XcodesApp/Xcodes/Backend/Entry+.swift

27 lines
766 B
Swift

import Foundation
import Path
extension Entry {
static func isAppBundle(kind: Kind, path: Path) -> Bool {
kind == .directory &&
path.extension == "app" &&
!path.isSymlink
}
static func infoPlist(kind: Kind, path: Path) -> InfoPlist? {
let infoPlistPath = path.join("Contents").join("Info.plist")
guard
let infoPlistData = try? Data(contentsOf: infoPlistPath.url),
let infoPlist = try? PropertyListDecoder().decode(InfoPlist.self, from: infoPlistData)
else { return nil }
return infoPlist
}
var isAppBundle: Bool {
Entry.isAppBundle(kind: kind, path: path)
}
var infoPlist: InfoPlist? {
Entry.infoPlist(kind: kind, path: path)
}
}