36 lines
718 B
JavaScript
36 lines
718 B
JavaScript
'use strict';
|
|
|
|
const pa = require('path');
|
|
|
|
const {NodeVM, VMError} = require('../');
|
|
|
|
if (process.argv[2]) {
|
|
const path = pa.resolve(process.argv[2]);
|
|
|
|
console.log(`\x1B[90m[vm] creating VM for ${path}\x1B[39m`);
|
|
const started = Date.now();
|
|
|
|
try {
|
|
NodeVM.file(path, {
|
|
verbose: true,
|
|
require: {
|
|
external: true
|
|
}
|
|
});
|
|
|
|
console.log(`\x1B[90m[vm] VM completed in ${Date.now() - started}ms\x1B[39m`);
|
|
} catch (ex) {
|
|
if (ex instanceof VMError) {
|
|
console.error(`\x1B[31m[vm:error] ${ex.message}\x1B[39m`);
|
|
} else {
|
|
const {stack} = ex;
|
|
|
|
if (stack) {
|
|
console.error(`\x1B[31m[vm:error] ${stack}\x1B[39m`);
|
|
} else {
|
|
console.error(`\x1B[31m[vm:error] ${ex}\x1B[39m`);
|
|
}
|
|
}
|
|
}
|
|
}
|