common/update/path.go (59 lines of code) (raw):

package update import ( "path/filepath" "runtime" "github.com/aliyun/aliyun_assist_client/common/pathutil" ) const ( DefaultUnixInstallDir = "/usr/local/share/aliyun-assist" DefaultUnixAgentName = "aliyun-service" DefaultUnixUpdateScript = "update_install" DefaultUnixUpdatorName = "aliyun_assist_update" DefaultWindowsInstallDir = "C:\\ProgramData\\aliyun\\assist" DefaultWindowsAgentName = "aliyun_assist_service.exe" DefaultWindowsUpdateScript = "install.bat" DefaultWindowsUpdatorName = "aliyun_assist_update.exe" ) func GetInstallDir() string { if installDir, err := pathutil.GetCrossVersionDir(); err == nil { return installDir } if runtime.GOOS == "windows" { return DefaultWindowsInstallDir } return DefaultUnixInstallDir } func GetAgentName() string { if runtime.GOOS == "windows" { return DefaultWindowsAgentName } return DefaultUnixAgentName } func GetAgentPathByVersion(version string) string { installDir := GetInstallDir() agentName := GetAgentName() return filepath.Join(installDir, version, agentName) } func GetUpdateScript() string { if runtime.GOOS == "windows" { return DefaultWindowsUpdateScript } return DefaultUnixUpdateScript } func GetUpdateScriptPathByVersion(version string) string { installDir := GetInstallDir() updateScript := GetUpdateScript() return filepath.Join(installDir, version, updateScript) } func GetUpdatorName() string { if runtime.GOOS == "windows" { return DefaultWindowsUpdatorName } return DefaultUnixUpdatorName } func GetUpdatorPathByCurrentProcess() string { dir, _ := pathutil.GetExecutableDir() updatorFilename := GetUpdatorName() updatorPath := filepath.Join(dir, updatorFilename) return updatorPath }