返回 DeepSeek-Reasonix
superseded_relaunch.go
根目录 / desktop / superseded_relaunch.go
1 package main
2
3 import (
4 "log/slog"
5 "os"
6
7 "reasonix/internal/installlayout"
8 )
9
10 // supersededDesktopNeedsRelaunch reports whether this executable is a retained
11 // versions/<old>/ desktop after current.json already points at a newer version.
12 func supersededDesktopNeedsRelaunch(exe string) bool {
13 if os.Getenv("REASONIX_DEV") != "" {
14 return false
15 }
16 active, err := installlayout.IsActiveDesktopExecutable(exe)
17 return err == nil && !active
18 }
19
20 func maybeRelaunchIfSuperseded() bool {
21 exe, err := os.Executable()
22 if err != nil {
23 return false
24 }
25 if !supersededDesktopNeedsRelaunch(exe) {
26 return false
27 }
28 if err := relaunchThroughLauncher(); err != nil {
29 slog.Error("desktop: relaunch superseded version", "err", err)
30 return false
31 }
32 return true
33 }
34
34 lines GO