42 lines · 1.5 KB · Swift
RawDownload
import Foundation public enum CodexHomeScope {    public static func normalizedHomePath(        _ rawPath: String?,        fileManager: FileManager = .default)        -> String?    {        guard var path = rawPath?.trimmingCharacters(in: .whitespacesAndNewlines), !path.isEmpty else {            return nil        }        if path == "~" {            path = fileManager.homeDirectoryForCurrentUser.path        } else if path.hasPrefix("~/") {            path = fileManager.homeDirectoryForCurrentUser                .appendingPathComponent(String(path.dropFirst(2)), isDirectory: true)                .path        } else if path.hasPrefix("~") {            return nil        }        guard (path as NSString).isAbsolutePath else { return nil }        return URL(fileURLWithPath: path, isDirectory: true).standardizedFileURL.path    }     public static func ambientHomeURL(        env: [String: String],        fileManager: FileManager = .default)        -> URL    {        if let raw = env["CODEX_HOME"]?.trimmingCharacters(in: .whitespacesAndNewlines), !raw.isEmpty {            return URL(fileURLWithPath: raw, isDirectory: true)        }        return fileManager.homeDirectoryForCurrentUser.appendingPathComponent(".codex", isDirectory: true)    }     public static func scopedEnvironment(base: [String: String], codexHome: String?) -> [String: String] {        guard let codexHome, !codexHome.isEmpty else { return base }        var env = base        env["CODEX_HOME"] = codexHome        return env    }}