Просмотр исходного кода

fix(SelfCheck): improve error message handling and update upgrade logic

Jacky 16 часов назад
Родитель
Сommit
9f6f9088c4

+ 2 - 2
app/src/components/SelfCheck/SelfCheck.vue

@@ -38,9 +38,9 @@ onMounted(() => {
             <div>
               {{ item.description?.() }}
             </div>
-            <div v-if="item.status !== 'success'" class="mt-1">
+            <div v-if="item.status !== 'success' && item.err?.message" class="mt-1">
               <ATag :color="item.status === 'warning' ? 'warning' : 'error'">
-                {{ item.err?.message || $gettext('Unknown issue') }}
+                {{ $gettext(item.err?.message) }}
               </ATag>
             </div>
           </template>

+ 2 - 4
internal/upgrader/binary.go

@@ -3,7 +3,6 @@ package upgrader
 import (
 	"os"
 
-	"code.pfad.fr/risefront"
 	"github.com/0xJacky/Nginx-UI/settings"
 	"github.com/gorilla/websocket"
 	"github.com/uozi-tech/cosy/logger"
@@ -71,9 +70,8 @@ func BinaryUpgrade(ws *websocket.Conn, control *Control) {
 		Status:  UpgradeStatusInfo,
 		Message: "Performing core upgrade",
 	})
-	// dry run
-	if control.DryRun || settings.NodeSettings.Demo {
-		risefront.Restart()
+
+	if settings.NodeSettings.Demo {
 		return
 	}
 

+ 8 - 1
internal/upgrader/upgrade.go

@@ -7,6 +7,7 @@ import (
 	"net/http"
 	"os"
 	"path/filepath"
+	"runtime"
 	"strconv"
 	"strings"
 	"sync/atomic"
@@ -217,8 +218,10 @@ func (u *Upgrader) PerformCoreUpgrade(tarPath string) (err error) {
 	}
 	defer updateInProgress.Store(false)
 
+	oldExe := filepath.Join(filepath.Dir(u.ExPath), ".nginx-ui.old."+strconv.FormatInt(time.Now().Unix(), 10))
+
 	opts := selfupdate.Options{
-		OldSavePath: fmt.Sprintf(".nginx-ui.old.%d", time.Now().Unix()),
+		OldSavePath: oldExe,
 	}
 
 	if err = opts.CheckPermissions(); err != nil {
@@ -269,6 +272,10 @@ func (u *Upgrader) PerformCoreUpgrade(tarPath string) (err error) {
 		return err
 	}
 
+	if runtime.GOOS != "windows" {
+		_ = os.Remove(oldExe)
+	}
+
 	// wait for the file to be written
 	time.Sleep(1 * time.Second)