@@ -394,8 +394,8 @@ async function checkForInterfaceUpdates() {
394
394
if ( vircadiaMeta && vircadiaMeta . latest . version && interfacePackage && interfacePackage . package . version ) {
395
395
var cleanedLocalMeta = interfacePackage . package . version . replace ( / _ / g, '-' ) ;
396
396
var versionCompare = compareVersions ( vircadiaMeta . latest . version , cleanedLocalMeta ) ;
397
-
398
- console . info ( "Compare Versions: " , versionCompare ) ;
397
+ console . info ( 'cleanedLocalMeta:' , cleanedLocalMeta )
398
+ console . info ( "Compare Versions:" , versionCompare ) ;
399
399
if ( versionCompare == 1 ) {
400
400
return 1 ; // An update is available.
401
401
} else {
@@ -611,7 +611,7 @@ ipcMain.on('launch-interface', async (event, arg) => {
611
611
// TODO: Add "QUANTUM_K3_INSTAQUIT" environment variable.
612
612
613
613
console . info ( "Parameters:" , parameters , "type:" , Array . isArray ( parameters ) ) ;
614
-
614
+ console . info ( "arg.launchAsChild" , arg . launchAsChild ) ;
615
615
if ( arg . launchAsChild ) {
616
616
launchInterface ( executablePath , parameters , arg . autoRestartInterface ) ;
617
617
} else {
@@ -633,17 +633,35 @@ function launchInterface(executablePath, parameters, autoRestartInterface) {
633
633
}
634
634
635
635
function launchInterfaceDetached ( executablePath , parameters ) {
636
+ // All arguments that have or may have spaces should be wrapped in ""
636
637
win . webContents . send ( 'launching-interface' ) ;
637
638
639
+ var pathToLaunch = process . cwd ( ) + "\\bat\\launcher.bat" ;
640
+ console . info ( "pathToLaunch:" , pathToLaunch ) ;
641
+
642
+ parameters = parameters . join ( ' ' ) ; // --arg1="" --arg2=""
643
+ parameters = parameters . split ( ' ' ) . join ( '#20' ) ; // convert spaces to #20
644
+ parameters = parameters . split ( '"' ) . join ( '#40' ) ; // convert " to #40
645
+ parameters = parameters . split ( '=' ) . join ( '#60' ) ; // convert = to #60
646
+ console . info ( "PARAMETERS:" , parameters ) ;
647
+ executablePath = '"' + executablePath + '"' ;
648
+
638
649
var interface_exe = require ( 'child_process' ) . spawn ;
650
+ var launcherBat = interface_exe ( pathToLaunch , [ executablePath , parameters ] , {
651
+ windowsVerbatimArguments : true
652
+ } ) ;
653
+
654
+ launcherBat . stdout . on ( 'data' , function ( data ) {
655
+ console . log ( 'launcherBatOut: ' + data ) ;
656
+ } ) ;
639
657
640
- var subprocess = interface_exe ( executablePath , parameters , {
641
- windowsVerbatimArguments : true ,
642
- detached : true ,
643
- stdio : 'ignore'
658
+ launcherBat . stderr . on ( 'data' , function ( data ) {
659
+ console . log ( 'launcherBatErr: ' + data ) ;
644
660
} ) ;
645
661
646
- subprocess . unref ( ) ;
662
+ launcherBat . on ( 'exit' , function ( code ) {
663
+ console . log ( 'child process exited with code ' + code ) ;
664
+ } ) ;
647
665
}
648
666
649
667
ipcMain . on ( 'get-vircadia-location' , async ( event , arg ) => {
0 commit comments