in backend/update/selfupdate.go [32:69]
func DoSelfUpdateMac() bool {
latest, found, _ := selfupdate.DetectLatest("annikovk/IntelliJ-Log-Analyzer")
if found {
homeDir, _ := os.UserHomeDir()
downloadPath := filepath.Join(homeDir, "Downloads", "IntelliJ-Log-Analyzer.zip")
err := exec.Command("curl", "-L", latest.AssetURL, "-o", downloadPath).Run()
if err != nil {
log.Println("curl error:", err)
return false
}
var appPath string
cmdPath, err := os.Executable()
appPath = strings.TrimSuffix(cmdPath, "IntelliJ Log Analyzer.app/Contents/MacOS/IntelliJ Log Analyzer")
if err != nil {
appPath = "/Applications/"
}
cmd := exec.Command("ditto", "-xk", downloadPath, appPath)
var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr
err = cmd.Run()
if err != nil {
log.Printf("ditto error: %s\n ouput: %s, error: %s", err, out.String(), stderr.String())
log.Printf("downloadPath: %s \n appPath %s", downloadPath, appPath)
return false
}
err = exec.Command("rm", downloadPath).Run()
if err != nil {
log.Println("removing error:", err)
log.Printf("downloadPath: %s", downloadPath)
return false
}
return true
} else {
return false
}
}