88 "os"
99 "os/exec"
1010 "path/filepath"
11- "regexp"
1211 "runtime"
1312 "strings"
1413 "syscall"
@@ -18,10 +17,6 @@ import (
1817 "github.com/liteldev/LeviLauncher/internal/utils"
1918)
2019
21- const forcedRegistrationConfigVersion = "1.26.0.0"
22-
23- var microsoftGameConfigIdentityVersionPattern = regexp .MustCompile (`(?is)(<Identity\b[^>]*\bVersion\s*=\s*")([^"]*)(")` )
24-
2520var appxManifestTemplate = template .Must (template .New ("appxManifest" ).Funcs (template.FuncMap {
2621 "attr" : xmlEscapeAttr ,
2722 "text" : xmlEscapeText ,
@@ -229,50 +224,6 @@ func normalizeInstallPath(path string) string {
229224 return norm
230225}
231226
232- func replaceMicrosoftGameConfigVersion (content []byte , version string ) ([]byte , string , error ) {
233- text := string (content )
234- matches := microsoftGameConfigIdentityVersionPattern .FindStringSubmatch (text )
235- if len (matches ) != 4 {
236- return nil , "" , fmt .Errorf ("identity version attribute not found" )
237- }
238- originalVersion := strings .TrimSpace (matches [2 ])
239- if originalVersion == version {
240- return content , originalVersion , nil
241- }
242- replaced := microsoftGameConfigIdentityVersionPattern .ReplaceAllString (text , "${1}" + version + "${3}" )
243- return []byte (replaced ), originalVersion , nil
244- }
245-
246- func overrideMicrosoftGameConfigVersion (folder string , version string ) (func () error , error ) {
247- configPath := filepath .Join (folder , "MicrosoftGame.Config" )
248- info , err := os .Stat (configPath )
249- if err != nil {
250- return nil , err
251- }
252- if info .IsDir () {
253- return nil , fmt .Errorf ("%s is a directory" , configPath )
254- }
255- originalContent , err := os .ReadFile (configPath )
256- if err != nil {
257- return nil , err
258- }
259- updatedContent , originalVersion , err := replaceMicrosoftGameConfigVersion (originalContent , version )
260- if err != nil {
261- return nil , err
262- }
263- if err := os .WriteFile (configPath , updatedContent , info .Mode ().Perm ()); err != nil {
264- return nil , err
265- }
266- log .Printf ("gdk.overrideMicrosoftGameConfigVersion: temporary override path=%s version=%s original=%s" , configPath , version , originalVersion )
267- return func () error {
268- if err := os .WriteFile (configPath , originalContent , info .Mode ().Perm ()); err != nil {
269- return err
270- }
271- log .Printf ("gdk.overrideMicrosoftGameConfigVersion: restored path=%s version=%s" , configPath , originalVersion )
272- return nil
273- }, nil
274- }
275-
276227func xmlEscapeAttr (value string ) string {
277228 var buf bytes.Buffer
278229 if err := xml .EscapeText (& buf , []byte (value )); err != nil {
@@ -555,7 +506,7 @@ func registerVersionFolderInternal(folder string) error {
555506 return registerLoosePackageWithPowerShell (manifestPath )
556507}
557508
558- func RegisterVersionFolder (folder string ) ( result string ) {
509+ func RegisterVersionFolder (folder string ) string {
559510 folder = filepath .Clean (strings .TrimSpace (folder ))
560511 log .Printf ("gdk.RegisterVersionFolder: start folder=%s" , folder )
561512 if folder == "" || ! utils .FileExists (folder ) {
@@ -570,22 +521,6 @@ func RegisterVersionFolder(folder string) (result string) {
570521 }
571522 log .Printf ("gdk.RegisterVersionFolder: Windows Developer Mode enabled" )
572523 }
573- restoreConfig , err := overrideMicrosoftGameConfigVersion (folder , forcedRegistrationConfigVersion )
574- if err != nil {
575- log .Printf ("gdk.RegisterVersionFolder: failed to override MicrosoftGame.Config version for folder=%s: %v" , folder , err )
576- return "ERR_REGISTER_FAILED"
577- }
578- defer func () {
579- if restoreConfig == nil {
580- return
581- }
582- if restoreErr := restoreConfig (); restoreErr != nil {
583- log .Printf ("gdk.RegisterVersionFolder: failed to restore MicrosoftGame.Config for folder=%s: %v" , folder , restoreErr )
584- if result == "" {
585- result = "ERR_REGISTER_FAILED"
586- }
587- }
588- }()
589524 if err := registerVersionFolderInternal (folder ); err != nil {
590525 log .Printf ("gdk.RegisterVersionFolder: internal register failed for folder=%s: %v" , folder , err )
591526 return "ERR_REGISTER_FAILED"
0 commit comments