From 3084e2ac0052dac3e8630e1524cc6a04c53fea70 Mon Sep 17 00:00:00 2001 From: Tony Anziano Date: Thu, 20 Dec 2018 10:32:26 -0800 Subject: [PATCH] Got detached spawn working in bundled version. --- packages/app/main/package.json | 8 +- packages/app/main/src/cli.ts | 121 +++-------------------------- packages/app/main/src/spawnMain.ts | 2 - 3 files changed, 14 insertions(+), 117 deletions(-) delete mode 100644 packages/app/main/src/spawnMain.ts diff --git a/packages/app/main/package.json b/packages/app/main/package.json index 8be3a2a9b..d353a4507 100644 --- a/packages/app/main/package.json +++ b/packages/app/main/package.json @@ -4,11 +4,8 @@ "version": "4.1.0", "private": true, "description": "Development tool for the Microsoft Bot Framework. Allows developers to test and debug bots on localhost.", - "main": "./app/server/cli.js", + "main": "./app/server/main.js", "homepage": "https://github.com/Microsoft/BotFramework-Emulator", - "config": { - "running_from_source": true - }, "scripts": { "build": "run-s lint build:electron", "build:electron": "babel ./src --out-dir app/server --extensions \".ts,.tsx\" --ignore \"**/*.spec.ts\" && npm run copy:extension:stubs", @@ -174,8 +171,7 @@ ], "asarUnpack": [ "app/extensions/**", - "node_modules/@bfemulator/extension-*/**", - "app/server/**" + "node_modules/@bfemulator/extension-*/**" ], "directories": { "buildResources": "./scripts/config/resources" diff --git a/packages/app/main/src/cli.ts b/packages/app/main/src/cli.ts index 224ec7b71..6457bb779 100644 --- a/packages/app/main/src/cli.ts +++ b/packages/app/main/src/cli.ts @@ -37,130 +37,33 @@ import { openSync } from 'fs-extra'; const launchDetachedEmulator = () => { const args = process.argv || []; - // path to electron exe - const electronPath = args[0]; - // path to spawn script - const spawner = join(__dirname, 'spawnMain.js'); - - // pass along args - const argsToPass = args.slice(1); - console.log('args to pass: ', argsToPass); - - console.log('spawning spawner'); - spawn( - spawner, - argsToPass, - { - detached: false, - stdio: 'inherit', - env: { - ELECTRON_RUN_AS_NODE: true - } - } - ); -}; - -launchDetachedEmulator(); - -/* -const launchDetachedEmulator = () => { - console.log('process exec path: ', process.execPath); - // console.log(process); - const runningFromSource = process.env.npm_package_config_running_from_source; - if (runningFromSource) { - console.log('Running from source.'); - launchDetachedFromSource(); - } else { - console.log('Running from packaged version.'); - launchDetachedFromPackage(); - } -}; - -const launchDetachedFromPackage = () => { - const args = process.argv || []; - // path to electron exe - const electronPath = args[0]; - console.log('ELECTRON PATH: ', electronPath); - // path to app entry point - const main = join(__dirname, 'main.js'); - console.log('MAIN PATH: ', main); - // pass args to app (prune '.' from end; will be replaced with path to entry point) - const argsToPass = args.slice(1); - console.log('args to pass: ', argsToPass); - - console.log('DIRNAME: ', __dirname); - console.log('CWD: ', process.cwd()); - - // console.log('spawning child'); - // const child = spawn( - // electronPath, - // [main], - // { - // detached: false, - // stdio: 'inherit', - // env: { - // launch_detached: '1' - // } - // } - // ); - // child.unref(); - - // const out = openSync(join(process.cwd(), './out.log'), 'a'); - // const err = openSync(join(process.cwd(), './err.log'), 'a'); - - // console.log('spawning sub process'); - // const child = spawn( - // electronPath, - // [ - // ...argsToPass, - // main - // ], - // { - // detached: true, - // stdio: 'ignore' // ['ignore', out, err] - // } - // ); - // child.unref(); - // console.log('should now be running in detached mode'); -}; - -const launchDetachedFromSource = () => { - const args = process.argv || []; - console.log('got args: ', args); if (!args[0]) { - console.log('no args'); return; } + // we want to start the electron app and not run it as a node script + delete process.env.ELECTRON_RUN_AS_NODE; + // path to electron exe const electronPath = args[0]; - console.log('ELECTRON PATH: ', electronPath); - // path to app entry point - const main = join(__dirname, 'main.js'); - console.log('MAIN PATH: ', main); - // pass args to app (prune '.' from end; will be replaced with path to entry point) - const argsToPass = args.slice(1, args.length - 1) || []; - console.log('args to pass: ', argsToPass); + + // pass args through to app + const argsToPass = args.slice(1) || []; - console.log('DIRNAME: ', __dirname); - console.log('CWD: ', process.cwd()); + const stdOut = openSync(join(process.cwd(), 'out_log.txt'), 'a'); + const stdErr = openSync(join(process.cwd(), 'err_log.txt'), 'a'); - console.log('spawning sub process'); + // spawn the detached electron app process const child = spawn( electronPath, - [ - ...argsToPass, - main - ], + argsToPass, { detached: true, - stdio: 'ignore' - } + stdio: ['ignore', stdOut, stdErr] + }, ); child.unref(); - console.log('should now be running in detached mode'); }; launchDetachedEmulator(); -*/ \ No newline at end of file diff --git a/packages/app/main/src/spawnMain.ts b/packages/app/main/src/spawnMain.ts deleted file mode 100644 index aa2f76696..000000000 --- a/packages/app/main/src/spawnMain.ts +++ /dev/null @@ -1,2 +0,0 @@ -const electron = require('electron'); -console.log('Electron path from spawner: ', electron);