UNPKG

@neo-one/server-plugin-compiler

Version:

NEO•ONE Server compiler plugin.

61 lines (59 loc) 6.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const csharp_1 = tslib_1.__importDefault(require("@neo-one/csharp")); const server_plugin_1 = require("@neo-one/server-plugin"); const execa_1 = tslib_1.__importDefault(require("execa")); const fs = tslib_1.__importStar(require("fs-extra")); const path = tslib_1.__importStar(require("path")); exports.compileCSharp = ({ vorpal, shutdown, logConfig$ }) => { vorpal.command('compile csharp <file> <output>', 'Compile C# code into a smart contract. Expects a dll file.').action(async (args) => { const { file, output } = args; logConfig$.next({ name: 'compile-csharp', path: server_plugin_1.paths.log, level: 'info', maxSize: 10 * 1024 * 1024, maxFiles: 5 }); try { await execa_1.default(csharp_1.default, [file]); } catch (error) { process.stdout.write(error.message); shutdown({ exitCode: 1, error }); return; } try { const outputPath = path.basename(file.replace('.dll', '.avm')); await fs.move(outputPath, output); } catch (error) { process.stdout.write(error.message); shutdown({ exitCode: 1, error }); return; } try { const abiPath = path.basename(file.replace('.dll', '.abi.json')); await fs.remove(abiPath); } catch (error) { process.stdout.write(error.message); shutdown({ exitCode: 1, error }); return; } shutdown({ exitCode: 0 }); }); }; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBpbGVDU2hhcnAudHMiXSwibmFtZXMiOlsiY29tcGlsZUNTaGFycCIsInZvcnBhbCIsInNodXRkb3duIiwibG9nQ29uZmlnJCIsImNvbW1hbmQiLCJhY3Rpb24iLCJhcmdzIiwiZmlsZSIsIm91dHB1dCIsIm5leHQiLCJuYW1lIiwicGF0aCIsInBhdGhzIiwibG9nIiwibGV2ZWwiLCJtYXhTaXplIiwibWF4RmlsZXMiLCJleGVjYSIsImNzaGFycCIsImVycm9yIiwicHJvY2VzcyIsInN0ZG91dCIsIndyaXRlIiwibWVzc2FnZSIsImV4aXRDb2RlIiwib3V0cHV0UGF0aCIsImJhc2VuYW1lIiwicmVwbGFjZSIsImZzIiwibW92ZSIsImFiaVBhdGgiLCJyZW1vdmUiXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFBO0FBQ0EsMERBQUE7QUFDQSwwREFBQTtBQUNBLHFEQUFBO0FBQ0EsbURBQUE7QUFFYUEsUUFBQUEsYUFBYSxHQUFHLENBQUMsRUFBRUMsTUFBRixFQUFVQyxRQUFWLEVBQW9CQyxVQUFBQSxFQUFyQixFQUFBLEVBQUE7SUFDM0JGLE1BQU0sQ0FDSEcsT0FESCxDQUNXLGdDQURYLEVBQzZDLDREQUQ3QyxDQUFBLENBRUdDLE1BRkgsQ0FFVSxLQUFBLEVBQU9DLElBQVAsRUFBQSxFQUFBO1FBQ04sTUFBTSxFQUFFQyxJQUFGLEVBQVFDLE1BQUFBLEVBQVIsR0FBbUJGLElBQXpCLENBQUE7UUFFQUgsVUFBVSxDQUFDTSxJQUFYLENBQWdCO1lBQ2RDLElBQUksRUFBRSxnQkFEUTtZQUVkQyxJQUFJLEVBQUVDLHFCQUFLLENBQUNDLEdBRkU7WUFHZEMsS0FBSyxFQUFFLE1BSE87WUFJZEMsT0FBTyxFQUFFLEVBQUEsR0FBSyxJQUFMLEdBQVksSUFKUDtZQUtkQyxRQUFRLEVBQUUsQ0FBQTtTQUxaLENBQUEsQ0FBQTtRQVFBLElBQUk7WUFDRixNQUFNQyxlQUFLLENBQUNDLGdCQUFELEVBQVMsQ0FBQ1gsSUFBRCxDQUFULENBQVgsQ0FBQTtTQURGO1FBRUUsT0FBT1ksS0FBUCxFQUFjO1lBQ2RDLE9BQU8sQ0FBQ0MsTUFBUixDQUFlQyxLQUFmLENBQXFCSCxLQUFLLENBQUNJLE9BQTNCLENBQUEsQ0FBQTtZQUNBckIsUUFBUSxDQUFDO2dCQUFFc0IsUUFBUSxFQUFFLENBQVo7Z0JBQWVMLEtBQUFBO2FBQWhCLENBQVIsQ0FBQTtZQUVBLE9BQUE7U0FDRDtRQUVELElBQUk7WUFDRixNQUFNTSxVQUFVLEdBQUdkLElBQUksQ0FBQ2UsUUFBTCxDQUFjbkIsSUFBSSxDQUFDb0IsT0FBTCxDQUFhLE1BQWIsRUFBcUIsTUFBckIsQ0FBZCxDQUFuQixDQUFBO1lBQ0EsTUFBTUMsRUFBRSxDQUFDQyxJQUFILENBQVFKLFVBQVIsRUFBb0JqQixNQUFwQixDQUFOLENBQUE7U0FGRjtRQUdFLE9BQU9XLEtBQVAsRUFBYztZQUNkQyxPQUFPLENBQUNDLE1BQVIsQ0FBZUMsS0FBZixDQUFxQkgsS0FBSyxDQUFDSSxPQUEzQixDQUFBLENBQUE7WUFDQXJCLFFBQVEsQ0FBQztnQkFBRXNCLFFBQVEsRUFBRSxDQUFaO2dCQUFlTCxLQUFBQTthQUFoQixDQUFSLENBQUE7WUFFQSxPQUFBO1NBQ0Q7UUFFRCxJQUFJO1lBQ0YsTUFBTVcsT0FBTyxHQUFHbkIsSUFBSSxDQUFDZSxRQUFMLENBQWNuQixJQUFJLENBQUNvQixPQUFMLENBQWEsTUFBYixFQUFxQixXQUFyQixDQUFkLENBQWhCLENBQUE7WUFDQSxNQUFNQyxFQUFFLENBQUNHLE1BQUgsQ0FBVUQsT0FBVixDQUFOLENBQUE7U0FGRjtRQUdFLE9BQU9YLEtBQVAsRUFBYztZQUNkQyxPQUFPLENBQUNDLE1BQVIsQ0FBZUMsS0FBZixDQUFxQkgsS0FBSyxDQUFDSSxPQUEzQixDQUFBLENBQUE7WUFDQXJCLFFBQVEsQ0FBQztnQkFBRXNCLFFBQVEsRUFBRSxDQUFaO2dCQUFlTCxLQUFBQTthQUFoQixDQUFSLENBQUE7WUFFQSxPQUFBO1NBQ0Q7UUFFRGpCLFFBQVEsQ0FBQztZQUFFc0IsUUFBUSxFQUFFLENBQUE7U0FBYixDQUFSLENBQUE7SUFDRCxDQTNDSCxDQUFBLENBQUE7QUE0Q0QsQ0E3Q00sQ0FBQSIsImZpbGUiOiJuZW8tb25lLXNlcnZlci1wbHVnaW4tY29tcGlsZXIvc3JjL2NvbW1hbmRzL2NvbXBpbGVDU2hhcnAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3NoYXJwIGZyb20gJ0BuZW8tb25lL2NzaGFycCc7XG5pbXBvcnQgeyBDTElBcmdzLCBwYXRocyB9IGZyb20gJ0BuZW8tb25lL3NlcnZlci1wbHVnaW4nO1xuaW1wb3J0IGV4ZWNhIGZyb20gJ2V4ZWNhJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbmV4cG9ydCBjb25zdCBjb21waWxlQ1NoYXJwID0gKHsgdm9ycGFsLCBzaHV0ZG93biwgbG9nQ29uZmlnJCB9OiBDTElBcmdzKSA9PiB7XG4gIHZvcnBhbFxuICAgIC5jb21tYW5kKCdjb21waWxlIGNzaGFycCA8ZmlsZT4gPG91dHB1dD4nLCAnQ29tcGlsZSBDIyBjb2RlIGludG8gYSBzbWFydCBjb250cmFjdC4gRXhwZWN0cyBhIGRsbCBmaWxlLicpXG4gICAgLmFjdGlvbihhc3luYyAoYXJncykgPT4ge1xuICAgICAgY29uc3QgeyBmaWxlLCBvdXRwdXQgfSA9IGFyZ3M7XG5cbiAgICAgIGxvZ0NvbmZpZyQubmV4dCh7XG4gICAgICAgIG5hbWU6ICdjb21waWxlLWNzaGFycCcsXG4gICAgICAgIHBhdGg6IHBhdGhzLmxvZyxcbiAgICAgICAgbGV2ZWw6ICdpbmZvJyxcbiAgICAgICAgbWF4U2l6ZTogMTAgKiAxMDI0ICogMTAyNCxcbiAgICAgICAgbWF4RmlsZXM6IDUsXG4gICAgICB9KTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZXhlY2EoY3NoYXJwLCBbZmlsZV0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIHNodXRkb3duKHsgZXhpdENvZGU6IDEsIGVycm9yIH0pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgb3V0cHV0UGF0aCA9IHBhdGguYmFzZW5hbWUoZmlsZS5yZXBsYWNlKCcuZGxsJywgJy5hdm0nKSk7XG4gICAgICAgIGF3YWl0IGZzLm1vdmUob3V0cHV0UGF0aCwgb3V0cHV0KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICBzaHV0ZG93bih7IGV4aXRDb2RlOiAxLCBlcnJvciB9KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGFiaVBhdGggPSBwYXRoLmJhc2VuYW1lKGZpbGUucmVwbGFjZSgnLmRsbCcsICcuYWJpLmpzb24nKSk7XG4gICAgICAgIGF3YWl0IGZzLnJlbW92ZShhYmlQYXRoKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICBzaHV0ZG93bih7IGV4aXRDb2RlOiAxLCBlcnJvciB9KTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHNodXRkb3duKHsgZXhpdENvZGU6IDAgfSk7XG4gICAgfSk7XG59O1xuIl19