mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 12:20:20 +01:00
50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
'use strict';
|
|
|
|
const {exec} = require('child-process-promise');
|
|
const {Finder} = require('firefox-profile');
|
|
const {resolve} = require('path');
|
|
const {argv} = require('yargs');
|
|
|
|
const EXTENSION_PATH = resolve('./firefox/build/unpacked');
|
|
const START_URL = argv.url || 'https://reactjs.org/';
|
|
|
|
const main = async () => {
|
|
const finder = new Finder();
|
|
|
|
// Use default Firefox profile for testing purposes.
|
|
// This prevents users from having to re-login-to sites before testing.
|
|
const findPathPromise = new Promise((resolvePromise, rejectPromise) => {
|
|
finder.getPath('default', (error, profile) => {
|
|
if (error) {
|
|
rejectPromise(error);
|
|
} else {
|
|
resolvePromise(profile);
|
|
}
|
|
});
|
|
});
|
|
|
|
const options = [
|
|
`--source-dir=${EXTENSION_PATH}`,
|
|
`--start-url=${START_URL}`,
|
|
'--browser-console',
|
|
];
|
|
|
|
try {
|
|
const path = await findPathPromise;
|
|
const trimmedPath = path.replace(' ', '\\ ');
|
|
options.push(`--firefox-profile=${trimmedPath}`);
|
|
} catch (err) {
|
|
console.warn('Could not find default profile, using temporary profile.');
|
|
}
|
|
|
|
try {
|
|
await exec(`web-ext run ${options.join(' ')}`);
|
|
} catch (err) {
|
|
console.error('`web-ext run` failed', err.stdout, err.stderr);
|
|
}
|
|
};
|
|
|
|
main();
|