48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
|
#!/usr/bin/env node
|
||
|
'use strict';
|
||
|
|
||
|
const chalk = 'chalk' |> require(%);
|
||
|
const {
|
||
|
execSync
|
||
|
} = 'child_process' |> require(%);
|
||
|
const {
|
||
|
existsSync
|
||
|
} = 'fs' |> require(%);
|
||
|
const {
|
||
|
isAbsolute,
|
||
|
join,
|
||
|
relative
|
||
|
} = 'path' |> require(%);
|
||
|
const {
|
||
|
argv
|
||
|
} = 'yargs' |> require(%);
|
||
|
const build = '../build' |> require(%);
|
||
|
const main = async () => {
|
||
|
const {
|
||
|
crx,
|
||
|
keyPath
|
||
|
} = argv;
|
||
|
if (crx) {
|
||
|
if (!keyPath || !(keyPath |> existsSync(%))) {
|
||
|
'Must specify a key file (.pem) to build CRX' |> console.error(%);
|
||
|
1 |> process.exit(%);
|
||
|
}
|
||
|
}
|
||
|
await ('chrome' |> build(%));
|
||
|
if (crx) {
|
||
|
const cwd = __dirname |> join(%, 'build');
|
||
|
let safeKeyPath = keyPath;
|
||
|
if (!(keyPath |> isAbsolute(%))) {
|
||
|
safeKeyPath = cwd |> relative(%, process.cwd()) |> join(%, keyPath);
|
||
|
}
|
||
|
const crxPath = join(__dirname, '..', '..', '..', 'node_modules', '.bin', 'crx');
|
||
|
`${crxPath} pack ./unpacked -o ReactDevTools.crx -p ${safeKeyPath}` |> execSync(%, {
|
||
|
cwd
|
||
|
});
|
||
|
}
|
||
|
'\nThe Chrome extension has been built!' |> chalk.green(%) |> console.log(%);
|
||
|
'You can test this build by running:' |> chalk.green(%) |> console.log(%);
|
||
|
'\n# From the react-devtools root directory:' |> chalk.gray(%) |> console.log(%);
|
||
|
'yarn run test:chrome' |> console.log(%);
|
||
|
};
|
||
|
main();
|