Stop version lookup at root

This commit is contained in:
tiffanysun1 2026-03-12 02:26:52 -07:00
parent f50f70dc41
commit f41a831778

View file

@ -8172,7 +8172,7 @@ struct CMUXCLI {
}
let fileManager = FileManager.default
var current = executableURL.deletingLastPathComponent()
var current = executableURL.deletingLastPathComponent().standardizedFileURL
while true {
let projectFile = current.appendingPathComponent("GhosttyTabs.xcodeproj/project.pbxproj")
@ -8193,8 +8193,7 @@ struct CMUXCLI {
}
}
let parent = current.deletingLastPathComponent()
if parent.path == current.path {
guard let parent = parentSearchURL(for: current) else {
break
}
current = parent
@ -8263,6 +8262,22 @@ struct CMUXCLI {
return String(normalized.prefix(12))
}
// Foundation can walk past "/" into "/.." when repeatedly deleting path
// components, so stop once the canonical root is reached.
private func parentSearchURL(for url: URL) -> URL? {
let standardized = url.standardizedFileURL
let path = standardized.path
guard !path.isEmpty, path != "/" else {
return nil
}
let parent = standardized.deletingLastPathComponent().standardizedFileURL
guard parent.path != path else {
return nil
}
return parent
}
private func candidateInfoPlistURLs() -> [URL] {
guard let executableURL = resolvedExecutableURL() else {
return []
@ -8280,7 +8295,7 @@ struct CMUXCLI {
candidates.append(url)
}
var current = executableURL.deletingLastPathComponent()
var current = executableURL.deletingLastPathComponent().standardizedFileURL
while true {
if current.pathExtension == "app" {
appendIfExisting(current.appendingPathComponent("Contents/Info.plist"))
@ -8299,8 +8314,7 @@ struct CMUXCLI {
break
}
let parent = current.deletingLastPathComponent()
if parent.path == current.path {
guard let parent = parentSearchURL(for: current) else {
break
}
current = parent