Setting current working directory for dev server.

Summary:
* This allows `react-native` to work for users on fedora.
* `react-native run-android` was failing because the launch packager script was unable to find packager.sh (see `source` in `man bash`).
* This change sets cwd for the dev server when run with `run-android`.
Closes https://github.com/facebook/react-native/pull/7316

Differential Revision: D3255866

fb-gh-sync-id: 88f6b18f7c61636ce8fecef77f7f4e60b1d9a637
fbshipit-source-id: 88f6b18f7c61636ce8fecef77f7f4e60b1d9a637
This commit is contained in:
jsdevel 2016-05-04 02:44:42 -07:00 committed by Facebook Github Bot 0
parent 80fc98cd61
commit d4cc5b53c7
2 changed files with 13 additions and 14 deletions

View File

@ -168,32 +168,31 @@ function buildAndRun(args, reject) {
} }
function startServerInNewWindow() { function startServerInNewWindow() {
var yargV = require('yargs').argv; const yargV = require('yargs').argv;
const scriptFile = /^win/.test(process.platform) ? const scriptFile = /^win/.test(process.platform) ?
'launchPackager.bat' : 'launchPackager.bat' :
'launchPackager.command'; 'launchPackager.command';
const packagerDir = path.resolve(__dirname, '..', '..', 'packager');
const launchPackagerScript = path.resolve( const launchPackagerScript = path.resolve(packagerDir, scriptFile);
__dirname, '..', '..', 'packager', scriptFile const procConfig = {cwd: packagerDir};
);
if (process.platform === 'darwin') { if (process.platform === 'darwin') {
if (yargV.open) { if (yargV.open) {
return child_process.spawnSync('open', ['-a', yargV.open, launchPackagerScript]); return child_process.spawnSync('open', ['-a', yargV.open, launchPackagerScript], procConfig);
} }
return child_process.spawnSync('open', [launchPackagerScript]); return child_process.spawnSync('open', [launchPackagerScript], procConfig);
} else if (process.platform === 'linux') { } else if (process.platform === 'linux') {
procConfig.detached = true;
if (yargV.open){ if (yargV.open){
return child_process.spawn(yargV.open,['-e', 'sh', launchPackagerScript], {detached: true}); return child_process.spawn(yargV.open,['-e', 'sh', launchPackagerScript], procConfig);
} }
return child_process.spawn('sh', [launchPackagerScript],{detached: true}); return child_process.spawn('sh', [launchPackagerScript], procConfig);
} else if (/^win/.test(process.platform)) { } else if (/^win/.test(process.platform)) {
return child_process.spawn( procConfig.detached = true;
'cmd.exe', ['/C', 'start', launchPackagerScript], {detached: true, stdio: 'ignore'} procConfig.stdio = 'ignore';
); return child_process.spawn('cmd.exe', ['/C', 'start', launchPackagerScript], procConfig);
} else { } else {
console.log(chalk.red(`Cannot start the packager. Unknown platform ${process.platform}`)); console.log(chalk.red(`Cannot start the packager. Unknown platform ${process.platform}`));
} }

View File

@ -13,7 +13,7 @@ clear
THIS_DIR=$(dirname "$0") THIS_DIR=$(dirname "$0")
pushd "$THIS_DIR" pushd "$THIS_DIR"
source packager.sh source ./packager.sh
popd popd
echo "Process terminated. Press <enter> to close the window" echo "Process terminated. Press <enter> to close the window"