From fe21443f6e1b558fc73dcb7a4a5c1461591ee14b Mon Sep 17 00:00:00 2001
From: Grigory <techuila.sunset@gmail.com>
Date: Sun, 26 Nov 2023 23:54:53 +0500
Subject: [PATCH] fix: getting spotify status on post-update apply

---
 spicetify.go      | 25 ++-----------------------
 src/cmd/update.go |  8 ++++++++
 2 files changed, 10 insertions(+), 23 deletions(-)

diff --git a/spicetify.go b/spicetify.go
index 2eca5c6e78..03f439e50b 100644
--- a/spicetify.go
+++ b/spicetify.go
@@ -6,15 +6,12 @@ import (
 	"io"
 	"log"
 	"os"
-	"os/exec"
 	"runtime"
 	"slices"
-	"strings"
 	"sync"
 
 	colorable "github.com/mattn/go-colorable"
 	"github.com/spicetify/spicetify-cli/src/cmd"
-	spotifystatus "github.com/spicetify/spicetify-cli/src/status/spotify"
 	"github.com/spicetify/spicetify-cli/src/utils"
 )
 
@@ -232,26 +229,8 @@ func main() {
 
 	utils.PrintBold("spicetify v" + version)
 	if slices.Contains(commands, "upgrade") || slices.Contains(commands, "update") {
-		updateStatus := cmd.Update(version)
-		if updateStatus {
-			ex, err := os.Executable()
-			if err != nil {
-				ex = "spicetify"
-			}
-
-			spotStat := spotifystatus.Get(utils.FindAppPath())
-			cmds := []string{"backup", "apply"}
-			if !spotStat.IsBackupable() {
-				cmds = append([]string{"restore"}, cmds...)
-			}
-
-			cmd := exec.Command(ex, cmds...)
-			utils.CmdScanner(cmd)
-
-			cmd = exec.Command(ex, strings.Join(commands[:], " "))
-			utils.CmdScanner(cmd)
-		}
-		return
+		cmd.Update(version)
+		return;
 	} else {
 		cmd.CheckUpdate(version)
 	}
diff --git a/src/cmd/update.go b/src/cmd/update.go
index 0090ff29b7..5503da70ff 100644
--- a/src/cmd/update.go
+++ b/src/cmd/update.go
@@ -8,6 +8,7 @@ import (
 	"path/filepath"
 	"runtime"
 
+	spotifystatus "github.com/spicetify/spicetify-cli/src/status/spotify"
 	"github.com/spicetify/spicetify-cli/src/utils"
 )
 
@@ -101,6 +102,13 @@ func Update(currentVersion string) bool {
 		permissionError(err)
 	}
 
+	spotStat := spotifystatus.Get(appPath)
+	if !spotStat.IsBackupable() {
+		Restore()
+	}
+	Backup(tagName)
+	Apply(tagName)
+
 	utils.CheckExistAndDelete(exeOld)
 	utils.PrintGreen("OK")
 	utils.PrintSuccess("spicetify is up-to-date.")