package platform import ( "context" "runtime" ) // Platform 平台适配接口 type Platform interface { // OS 返回操作系统标识 OS() string // Arch 返回架构标识 Arch() string // HomeDir 返回用户主目录 HomeDir() string // ConfigDir 返回配置文件目录 ConfigDir() string // DataDir 返回数据目录 DataDir() string // GetEnvVar 获取环境变量 GetEnvVar(key string) string // SetEnvVar 设置用户级环境变量 SetEnvVar(ctx context.Context, key, value string) error // AddToPath 添加目录到 PATH AddToPath(ctx context.Context, dir string) error // IsAdmin 是否以管理员身份运行 IsAdmin() bool // PackageManagers 返回可用的包管理器名称 PackageManagers() []string // DefaultShell 返回默认 Shell DefaultShell() string // InstallFont 安装字体 InstallFont(ctx context.Context, fontPath string) error } // Detect 检测当前平台并返回对应的 Platform 实现 func Detect() Platform { switch runtime.GOOS { case "windows": return NewWindowsPlatform() case "darwin": return NewDarwinPlatform() case "linux": return NewLinuxPlatform() default: // 默认回退到 Linux 实现 return NewLinuxPlatform() } }