mirror of
https://github.com/shadowsocks/ShadowsocksX-NG.git
synced 2026-11-08 10:34:51 +00:00
37 lines
1.4 KiB
Swift
37 lines
1.4 KiB
Swift
import Foundation
|
|
|
|
// MARK: - 进程级路径与环境(测试缝经 SSXNG_* 环境变量覆盖)
|
|
|
|
let environment = ProcessInfo.processInfo.environment
|
|
|
|
// 契约路径优先;运行目录覆盖仅在没有契约覆盖时使用,避免同一部署的路径分叉。
|
|
let runtimePaths: RuntimePaths = {
|
|
if let path = environment["SSXNG_CONTRACT_PATH"] {
|
|
return RuntimePaths(fileURL: URL(fileURLWithPath: path))
|
|
}
|
|
if let path = environment["SSXNG_RUNTIME_DIR"] {
|
|
return RuntimePaths(directoryURL: URL(fileURLWithPath: path, isDirectory: true))
|
|
}
|
|
return ApplicationSupportPaths.current.runtime
|
|
}()
|
|
|
|
let contractURL = runtimePaths.fileURL
|
|
let aclFileURL = runtimePaths.aclFileURL
|
|
let pidFileURL = runtimePaths.pidFileURL
|
|
let runtimeStatusFileURL = runtimePaths.runtimeStatusFileURL
|
|
let supervisionURL = runtimePaths.supervisionFileURL
|
|
let failureURL = runtimePaths.failureFileURL
|
|
let childPIDURL = runtimePaths.childPIDFileURL
|
|
|
|
let agentLogURL: URL = {
|
|
if let path = environment["SSXNG_LOG_PATH"] { return URL(fileURLWithPath: path) }
|
|
if environment["SSXNG_CONTRACT_PATH"] != nil || environment["SSXNG_RUNTIME_DIR"] != nil {
|
|
return runtimePaths.directoryURL.appendingPathComponent("agent.log")
|
|
}
|
|
return ApplicationSupportPaths.current.agentLogURL
|
|
}()
|
|
|
|
let sslocalURL: URL =
|
|
environment["SSXNG_SSLOCAL_PATH"].map { URL(fileURLWithPath: $0) }
|
|
?? Bundle.main.bundleURL.appendingPathComponent("Contents/Helpers/sslocal")
|