Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
function runTest(test) {
var batchFile = path.join(test.path, 'run.batch');
if (!fs.existsSync(batchFile)) {
runNextTest();
return; // this folder is not a test folder;
}
var txt = (fs.readFileSync(batchFile) + '');
txt = applyChanges(txt);
console.log(colors.bold('running'), txt);
rimraf.sync(test.path);
try {
execSync(`git checkout ${test.path} && cd ${test.path} && ${txt}`, {stdio:[0,1,2]});
totals.success++;
console.log(' -', colors.bold('pass'), currentTest.name);
} catch(err) {
totals.fail++;
console.log(' -', colors.bold('failed'), currentTest.name);
console.error(err.message);
process.exit(1);
}
runNextTest();
}
const fetcher = new SubmoduleFetcher(repo, head);
const subName = paths[0];
const opener = new Open.Opener(repo, null);
const subRepo = yield opener.getSubrepo(subName,
Open.SUB_OPEN_OPTION.FORCE_OPEN);
const metaCommit = yield repo.getCommit(metaAnnotated.id());
// Now that we have an open submodule, we can attempt to resolve
// `subCommittish`.
const subAnnotated = yield GitUtil.resolveCommitish(subRepo,
subCommittish);
if (null === subAnnotated) {
throw new UserError(`\
Could not find ${colors.red(subCommittish)} in ${colors.blue(subName)}.\
`);
}
// This command could take a while; let the user know exactly what we're
// doing.
console.log(`\
Searching for ${colors.green(GitUtil.shortSha(subAnnotated.id().tostrS()))} \
from submodule ${colors.blue(subName)}, starting at \
${colors.green(GitUtil.shortSha(metaAnnotated.id().tostrS()))} in the \
meta-repo.`);
const subCommit = yield subRepo.getCommit(subAnnotated.id());
// Finally, we do the search.
const verifyExtensiveTools = () => {
// verify rnpm exists
if (!Shell.which('rnpm')) {
console.log(colors.red('This script requires rnpm to be installed.'))
console.log(colors.green('Installing rnpm...'))
Shell.exec('npm i -g rnpm')
// Enforce latest rnpm -> line count of npm outdated should be zero
} else if (!Shell.exec('npm outdated -g rnpm | wc -l | grep 0')) {
console.log(colors.red('We depend on an updated rnpm.'))
console.log(colors.yellow('Please update with ') + colors.green('npm i -g rnpm'))
console.log(colors.red('Exiting!'))
Shell.exit(1)
}
}
main().catch(e => {
// tslint:disable-next-line:no-console
console.error(colors.red(e));
process.exit(1);
});
function describeGate(gate, formatRadix, formatStringLengh, columns) {
const {run} = options;
const GateClass = loadGate(gate);
const isBuiltIn = Object.getPrototypeOf(GateClass) === BuiltInGate;
const isKeyboard = isBuiltIn && GateClass.name === 'Keyboard';
const spec = GateClass.Spec;
console.info('');
console.info(
(isBuiltIn ? 'BuiltIn ' : 'Custom ') +
colors.bold(`"${GateClass.name}"`) +
' gate:'
);
const toFullName = name => {
const isSimple = typeof name === 'string' || name.size === 1;
return (name = isSimple
? ` - ${name.name || name}`
: ` - ${name.name}[${name.size}]`);
};
// Description:
const description = spec.description
.split('\n')
.map(line => ' ' + line)
.join('\n');
return callback(true);
}
}else{
//if(!/^.*(\.({|{[a-zA-Z,]*,)|\.)(svg)(,[,a-zA-Z]*}|}|)$/gi.test(input)){
// console.log(colors.red(" You didn't turn on [enginesvg], but your input path includes the 'svg' extension; either delete the extension 'svg' from path, or turn on [enginesvg: ['svgo'] or other]. Alternatively, your input path may be malformed!: Examples: src/img/**/*.{jpg,JPG,jpeg,JPEG,svg} or src/img/**/*.svg or src/img/*.svg ..."));
// console.log(colors.red(' Input path: ')+colors.magenta(input));
// return callback(true);
//}
}
//GIF
if(false == enginegif.gif.engine){
if(/^.*(\.({|{[a-zA-Z,]*,)|\.)(gif)(,[,a-zA-Z]*}|}|)$/gi.test(input)){
console.log(colors.red(" You didn't turn on [enginegif], but your input path includes the 'gif' extension; either delete the extension 'gif' from the input path, or turn on [enginegif: ['gifsicle'] or other]. Alternatively, your input path may be malformed!: Examples: src/img/**/*.{jpg,JPG,jpeg,JPEG,gif} or src/img/**/*.gif or src/img/*.gif ..."));
console.log(colors.red(' Input path: ')+colors.magenta(input));
return callback(true);
}
}else{
//if(!/^.*(\.({|{[a-zA-Z,]*,)|\.)(gif)(,[,a-zA-Z]*}|}|)$/gi.test(input)){
// console.log(colors.red(" You didn't turn on [enginegif], but your input path includes the 'gif' extension; either delete the extension 'gif' from path, or turn on [enginegif: ['gifsicle'] or other]. Alternatively, your input path may be malformed!: Examples: src/img/**/*.{jpg,JPG,jpeg,JPEG,gif} or src/img/**/*.gif or src/img/*.gif ..."));
// console.log(colors.red(' Input path: ')+colors.magenta(input));
// return callback(true);
//}
}
if(returnMain === 'finished2') {
console.clear();
console.log();
console.log(colors.blue.bold('mStream Configuration Wizard'));
console.log(colors.magenta('Config Not Saved!'));
console.log();
process.exit();
}
// Save
fs.writeFileSync( filepath, JSON.stringify(loadJson, null, 2), 'utf8');
console.clear();
console.log();
console.log(colors.blue.bold('mStream Configuration Wizard'));
console.log(colors.magenta('Config Saved!'));
console.log();
console.log(colors.bold('You can start mStream by running the command:'));
console.log(`mstream -j ${filepath}`);
console.log();
}
let color;
results.push(validatorTask.result);
result = this.mergeValidationResults(results);
color =
result.type === 0 /* missing */
? colors.red
: result.type === 2 /* installed */
? colors.green
: colors.yellow;
// console.log(this.androidSdk.latestVersion.AndroidSdkVersion.sdkLevel)
messageResult += `${color(`\n${result.leadingBox} ${validator.title}\n`)}`;
// console.log(`${result.leadingBox} ${validator.title} is`)
for (let message of result.messages) {
const text = message.message.replace('\n', '\n ');
if (message.isError) {
messageResult += `${colors.red(` ✗ ${text}`)}\n`;
// console.log(` ✗ ${text}`);
}
else if (message.isWaring) {
messageResult += `${colors.yellow(` ! ${text}`)}\n`;
// console.log(` ! ${text}`);
}
else {
messageResult += ` • ${text}\n`;
// console.log(` • ${text}`);
}
}
}
return messageResult;
}
mergeValidationResults(results) {
function execScript(script, {verbose = false} = {}) {
try {
new ScriptInterpreter({
file: script,
workingDirectory: path.dirname(script),
}).exec();
if (verbose) {
console.info(colors.green('\n\u2713 Script executed successfully!\n'));
} else {
console.info(colors.green('[PASS]'), path.basename(script));
}
} catch (e) {
if (!verbose) {
console.info(colors.red('[FAIL]'), path.basename(script));
return;
}
if (!e.errorData) {
console.info(`Script error:`, e);
return;
}
const {header, errorList, compareTo} = e.errorData;
console.info(colors.red('\nError executing the script:\n'));
const pad2 = ' ';
const pad4 = ' ';
// Find Max line number
const headers = {
'content-type': 'application/octet-stream',
'x-fc-request-id': requestId,
'x-fc-invocation-duration': billedTime,
'x-fc-invocation-service-version': 'LATEST',
'x-fc-max-memory-usage': memoryUsage,
'access-control-expose-headers': 'Date,x-fc-request-id,x-fc-error-type,x-fc-code-checksum,x-fc-invocation-duration,x-fc-max-memory-usage,x-fc-log-result,x-fc-invocation-code-version'
};
res.status(statusCode);
// todo: fix body 后面多个换行的 bug
if (errorResponse) { // process HandledInvocationError and UnhandledInvocationError
headers['content-type'] = 'application/json';
console.error(red(errorResponse));
if (body.toString()) {
headers['x-fc-error-type'] = 'HandledInvocationError';
} else {
headers['x-fc-error-type'] = 'UnhandledInvocationError';
body = {
'errorMessage': `Process exited unexpectedly before completing request (duration: ${billedTime}ms, maxMemoryUsage: ${memoryUsage}MB)`
};
}
}
res.set(headers);
res.send(body);
}
}