@neo-one/server-plugin-compiler
Version:
NEO•ONE Server compiler plugin.
35 lines (33 loc) • 3.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const boa_1 = tslib_1.__importDefault(require("@neo-one/boa"));
const server_plugin_1 = require("@neo-one/server-plugin");
const execa_1 = tslib_1.__importDefault(require("execa"));
exports.compilePython = ({ vorpal, shutdown, logConfig$ }) => {
vorpal.command('compile python <file> <output>', 'Compile Python code into a smart contract. Expects a py file.').action(async (args) => {
const { file, output } = args;
logConfig$.next({
name: 'compile-python',
path: server_plugin_1.paths.log,
level: 'info',
maxSize: 10 * 1024 * 1024,
maxFiles: 5
});
try {
await execa_1.default(boa_1.default, [file, output]);
}
catch (error) {
process.stdout.write(error.message);
shutdown({
exitCode: 1,
error
});
return;
}
shutdown({
exitCode: 0
});
});
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBpbGVQeXRob24udHMiXSwibmFtZXMiOlsiY29tcGlsZVB5dGhvbiIsInZvcnBhbCIsInNodXRkb3duIiwibG9nQ29uZmlnJCIsImNvbW1hbmQiLCJhY3Rpb24iLCJhcmdzIiwiZmlsZSIsIm91dHB1dCIsIm5leHQiLCJuYW1lIiwicGF0aCIsInBhdGhzIiwibG9nIiwibGV2ZWwiLCJtYXhTaXplIiwibWF4RmlsZXMiLCJleGVjYSIsImJvYSIsImVycm9yIiwicHJvY2VzcyIsInN0ZG91dCIsIndyaXRlIiwibWVzc2FnZSIsImV4aXRDb2RlIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSwrREFBQTtBQUNBLDBEQUFBO0FBQ0EsMERBQUE7QUFFYUEsUUFBQUEsYUFBYSxHQUFHLENBQUMsRUFBRUMsTUFBRixFQUFVQyxRQUFWLEVBQW9CQyxVQUFBQSxFQUFyQixFQUFBLEVBQUE7SUFDM0JGLE1BQU0sQ0FDSEcsT0FESCxDQUNXLGdDQURYLEVBQzZDLCtEQUQ3QyxDQUFBLENBRUdDLE1BRkgsQ0FFVSxLQUFBLEVBQU9DLElBQVAsRUFBQSxFQUFBO1FBQ04sTUFBTSxFQUFFQyxJQUFGLEVBQVFDLE1BQUFBLEVBQVIsR0FBbUJGLElBQXpCLENBQUE7UUFFQUgsVUFBVSxDQUFDTSxJQUFYLENBQWdCO1lBQ2RDLElBQUksRUFBRSxnQkFEUTtZQUVkQyxJQUFJLEVBQUVDLHFCQUFLLENBQUNDLEdBRkU7WUFHZEMsS0FBSyxFQUFFLE1BSE87WUFJZEMsT0FBTyxFQUFFLEVBQUEsR0FBSyxJQUFMLEdBQVksSUFKUDtZQUtkQyxRQUFRLEVBQUUsQ0FBQTtTQUxaLENBQUEsQ0FBQTtRQVFBLElBQUk7WUFDRixNQUFNQyxlQUFLLENBQUNDLGFBQUQsRUFBTSxDQUFDWCxJQUFELEVBQU9DLE1BQVAsQ0FBTixDQUFYLENBQUE7U0FERjtRQUVFLE9BQU9XLEtBQVAsRUFBYztZQUNkQyxPQUFPLENBQUNDLE1BQVIsQ0FBZUMsS0FBZixDQUFxQkgsS0FBSyxDQUFDSSxPQUEzQixDQUFBLENBQUE7WUFDQXJCLFFBQVEsQ0FBQztnQkFBRXNCLFFBQVEsRUFBRSxDQUFaO2dCQUFlTCxLQUFBQTthQUFoQixDQUFSLENBQUE7WUFFQSxPQUFBO1NBQ0Q7UUFFRGpCLFFBQVEsQ0FBQztZQUFFc0IsUUFBUSxFQUFFLENBQUE7U0FBYixDQUFSLENBQUE7SUFDRCxDQXZCSCxDQUFBLENBQUE7QUF3QkQsQ0F6Qk0sQ0FBQSIsImZpbGUiOiJuZW8tb25lLXNlcnZlci1wbHVnaW4tY29tcGlsZXIvc3JjL2NvbW1hbmRzL2NvbXBpbGVQeXRob24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYm9hIGZyb20gJ0BuZW8tb25lL2JvYSc7XG5pbXBvcnQgeyBDTElBcmdzLCBwYXRocyB9IGZyb20gJ0BuZW8tb25lL3NlcnZlci1wbHVnaW4nO1xuaW1wb3J0IGV4ZWNhIGZyb20gJ2V4ZWNhJztcblxuZXhwb3J0IGNvbnN0IGNvbXBpbGVQeXRob24gPSAoeyB2b3JwYWwsIHNodXRkb3duLCBsb2dDb25maWckIH06IENMSUFyZ3MpID0+IHtcbiAgdm9ycGFsXG4gICAgLmNvbW1hbmQoJ2NvbXBpbGUgcHl0aG9uIDxmaWxlPiA8b3V0cHV0PicsICdDb21waWxlIFB5dGhvbiBjb2RlIGludG8gYSBzbWFydCBjb250cmFjdC4gRXhwZWN0cyBhIHB5IGZpbGUuJylcbiAgICAuYWN0aW9uKGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICBjb25zdCB7IGZpbGUsIG91dHB1dCB9ID0gYXJncztcblxuICAgICAgbG9nQ29uZmlnJC5uZXh0KHtcbiAgICAgICAgbmFtZTogJ2NvbXBpbGUtcHl0aG9uJyxcbiAgICAgICAgcGF0aDogcGF0aHMubG9nLFxuICAgICAgICBsZXZlbDogJ2luZm8nLFxuICAgICAgICBtYXhTaXplOiAxMCAqIDEwMjQgKiAxMDI0LFxuICAgICAgICBtYXhGaWxlczogNSxcbiAgICAgIH0pO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBleGVjYShib2EsIFtmaWxlLCBvdXRwdXRdKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICBzaHV0ZG93bih7IGV4aXRDb2RlOiAxLCBlcnJvciB9KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNodXRkb3duKHsgZXhpdENvZGU6IDAgfSk7XG4gICAgfSk7XG59O1xuIl19