UNPKG

@neo-one/server-plugin-network

Version:

NEO•ONE Server network plugin.

85 lines (83 loc) 11.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const path = tslib_1.__importStar(require("path")); const operators_1 = require("rxjs/operators"); const createFullNode_1 = require("./createFullNode"); const node_1 = require("./node"); const getOption = ({ vorpal, shutdown }, options, key) => { const value = options[key]; if (value == undefined) { vorpal.activeCommand.log(`--${key} is required.`); shutdown({ exitCode: 1 }); } return value; }; exports.addOptions = (command) => { command .option('--gcloud-project-id <projectID>', 'Google Cloud project id') .option('--gcloud-bucket <bucket>', 'Google Cloud bucket') .option('--gcloud-prefix <file>', 'Google Cloud prefix') .option('--mega-email <email>', 'Mega email') .option('--mega-password <password>', 'Mega password') .option('--mega-file <file>', 'Mega file name'); }; exports.processArgs = async (cliArgs, args) => { const { vorpal, monitor, shutdown, mutableShutdownFuncs, logConfig$ } = cliArgs; const { dataPath, provider, options: cliOptions } = args; let mega; let gcloud; if (provider === 'mega') { const email = getOption(cliArgs, cliOptions, 'mega-email'); const password = getOption(cliArgs, cliOptions, 'mega-password'); const file = getOption(cliArgs, cliOptions, 'mega-file'); if (email === undefined || password === undefined || file === undefined) { return undefined; } mega = { upload: { email, password, file, }, }; } else if (provider === 'gcloud') { const projectID = getOption(cliArgs, cliOptions, 'gcloud-project-id'); const bucket = getOption(cliArgs, cliOptions, 'gcloud-bucket'); const prefix = getOption(cliArgs, cliOptions, 'gcloud-prefix'); if (projectID === undefined || bucket === undefined || prefix === undefined) { return undefined; } gcloud = { projectID, bucket, prefix, }; } else { vorpal.activeCommand.log(`Unknown provider: ${provider}. Valid choices: "mega", "gcloud"`); shutdown({ exitCode: 1 }); return undefined; } const options = { gcloud, mega }; const nodeConfig = node_1.createNEOONENodeConfig({ dataPath }); const logPath = path.resolve(dataPath, 'log'); const logSubscription = nodeConfig.config$ .pipe(operators_1.map((config) => config.log), operators_1.distinctUntilChanged(), operators_1.map((config) => ({ name: 'node', path: logPath, level: config.level, maxSize: config.maxSize, maxFiles: config.maxFiles, }))) .subscribe(logConfig$); mutableShutdownFuncs.push(() => logSubscription.unsubscribe()); const node = await createFullNode_1.createFullNode({ dataPath, nodeConfig, monitor, }); return { node, options }; }; //# sourceMappingURL=data:application/json;charset=utf8;base64,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c2VydmVyLXBsdWdpbi1uZXR3b3JrL3NyYy9jb21tb25CYWNrdXBOb2RlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnVsbE5vZGUgfSBmcm9tICdAbmVvLW9uZS9ub2RlJztcbmltcG9ydCB7IEJhY2t1cFJlc3RvcmVPcHRpb25zIH0gZnJvbSAnQG5lby1vbmUvbm9kZS1kYXRhLWJhY2t1cCc7XG5pbXBvcnQgeyBDTElBcmdzIH0gZnJvbSAnQG5lby1vbmUvc2VydmVyLXBsdWdpbic7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFyZ3MsIENvbW1hbmQgfSBmcm9tICd2b3JwYWwnO1xuaW1wb3J0IHsgY3JlYXRlRnVsbE5vZGUgfSBmcm9tICcuL2NyZWF0ZUZ1bGxOb2RlJztcbmltcG9ydCB7IGNyZWF0ZU5FT09ORU5vZGVDb25maWcgfSBmcm9tICcuL25vZGUnO1xuXG5jb25zdCBnZXRPcHRpb24gPSAoeyB2b3JwYWwsIHNodXRkb3duIH06IENMSUFyZ3MsIG9wdGlvbnM6IEFyZ3NbJ29wdGlvbnMnXSwga2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCB2YWx1ZSA9IG9wdGlvbnNba2V5XTtcbiAgaWYgKHZhbHVlID09IHVuZGVmaW5lZCkge1xuICAgIHZvcnBhbC5hY3RpdmVDb21tYW5kLmxvZyhgLS0ke2tleX0gaXMgcmVxdWlyZWQuYCk7XG4gICAgc2h1dGRvd24oeyBleGl0Q29kZTogMSB9KTtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRPcHRpb25zID0gKGNvbW1hbmQ6IENvbW1hbmQpID0+IHtcbiAgY29tbWFuZFxuICAgIC5vcHRpb24oJy0tZ2Nsb3VkLXByb2plY3QtaWQgPHByb2plY3RJRD4nLCAnR29vZ2xlIENsb3VkIHByb2plY3QgaWQnKVxuICAgIC5vcHRpb24oJy0tZ2Nsb3VkLWJ1Y2tldCA8YnVja2V0PicsICdHb29nbGUgQ2xvdWQgYnVja2V0JylcbiAgICAub3B0aW9uKCctLWdjbG91ZC1wcmVmaXggPGZpbGU+JywgJ0dvb2dsZSBDbG91ZCBwcmVmaXgnKVxuICAgIC5vcHRpb24oJy0tbWVnYS1lbWFpbCA8ZW1haWw+JywgJ01lZ2EgZW1haWwnKVxuICAgIC5vcHRpb24oJy0tbWVnYS1wYXNzd29yZCA8cGFzc3dvcmQ+JywgJ01lZ2EgcGFzc3dvcmQnKVxuICAgIC5vcHRpb24oJy0tbWVnYS1maWxlIDxmaWxlPicsICdNZWdhIGZpbGUgbmFtZScpO1xufTtcblxuZXhwb3J0IGNvbnN0IHByb2Nlc3NBcmdzID0gYXN5bmMgKFxuICBjbGlBcmdzOiBDTElBcmdzLFxuICBhcmdzOiBBcmdzLFxuKTogUHJvbWlzZTx7IHJlYWRvbmx5IG5vZGU6IEZ1bGxOb2RlOyByZWFkb25seSBvcHRpb25zOiBCYWNrdXBSZXN0b3JlT3B0aW9ucyB9IHwgdW5kZWZpbmVkPiA9PiB7XG4gIGNvbnN0IHsgdm9ycGFsLCBtb25pdG9yLCBzaHV0ZG93biwgbXV0YWJsZVNodXRkb3duRnVuY3MsIGxvZ0NvbmZpZyQgfSA9IGNsaUFyZ3M7XG4gIGNvbnN0IHsgZGF0YVBhdGgsIHByb3ZpZGVyLCBvcHRpb25zOiBjbGlPcHRpb25zIH0gPSBhcmdzO1xuICBsZXQgbWVnYTtcbiAgbGV0IGdjbG91ZDtcbiAgaWYgKHByb3ZpZGVyID09PSAnbWVnYScpIHtcbiAgICBjb25zdCBlbWFpbCA9IGdldE9wdGlvbihjbGlBcmdzLCBjbGlPcHRpb25zLCAnbWVnYS1lbWFpbCcpO1xuICAgIGNvbnN0IHBhc3N3b3JkID0gZ2V0T3B0aW9uKGNsaUFyZ3MsIGNsaU9wdGlvbnMsICdtZWdhLXBhc3N3b3JkJyk7XG4gICAgY29uc3QgZmlsZSA9IGdldE9wdGlvbihjbGlBcmdzLCBjbGlPcHRpb25zLCAnbWVnYS1maWxlJyk7XG4gICAgaWYgKGVtYWlsID09PSB1bmRlZmluZWQgfHwgcGFzc3dvcmQgPT09IHVuZGVmaW5lZCB8fCBmaWxlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIG1lZ2EgPSB7XG4gICAgICB1cGxvYWQ6IHtcbiAgICAgICAgZW1haWwsXG4gICAgICAgIHBhc3N3b3JkLFxuICAgICAgICBmaWxlLFxuICAgICAgfSxcbiAgICB9O1xuICB9IGVsc2UgaWYgKHByb3ZpZGVyID09PSAnZ2Nsb3VkJykge1xuICAgIGNvbnN0IHByb2plY3RJRCA9IGdldE9wdGlvbihjbGlBcmdzLCBjbGlPcHRpb25zLCAnZ2Nsb3VkLXByb2plY3QtaWQnKTtcbiAgICBjb25zdCBidWNrZXQgPSBnZXRPcHRpb24oY2xpQXJncywgY2xpT3B0aW9ucywgJ2djbG91ZC1idWNrZXQnKTtcbiAgICBjb25zdCBwcmVmaXggPSBnZXRPcHRpb24oY2xpQXJncywgY2xpT3B0aW9ucywgJ2djbG91ZC1wcmVmaXgnKTtcbiAgICBpZiAocHJvamVjdElEID09PSB1bmRlZmluZWQgfHwgYnVja2V0ID09PSB1bmRlZmluZWQgfHwgcHJlZml4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGdjbG91ZCA9IHtcbiAgICAgIHByb2plY3RJRCxcbiAgICAgIGJ1Y2tldCxcbiAgICAgIHByZWZpeCxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHZvcnBhbC5hY3RpdmVDb21tYW5kLmxvZyhgVW5rbm93biBwcm92aWRlcjogJHtwcm92aWRlcn0uIFZhbGlkIGNob2ljZXM6IFwibWVnYVwiLCBcImdjbG91ZFwiYCk7XG5cbiAgICBzaHV0ZG93bih7IGV4aXRDb2RlOiAxIH0pO1xuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBvcHRpb25zID0geyBnY2xvdWQsIG1lZ2EgfTtcblxuICBjb25zdCBub2RlQ29uZmlnID0gY3JlYXRlTkVPT05FTm9kZUNvbmZpZyh7IGRhdGFQYXRoIH0pO1xuICBjb25zdCBsb2dQYXRoID0gcGF0aC5yZXNvbHZlKGRhdGFQYXRoLCAnbG9nJyk7XG4gIGNvbnN0IGxvZ1N1YnNjcmlwdGlvbiA9IG5vZGVDb25maWcuY29uZmlnJFxuICAgIC5waXBlKFxuICAgICAgbWFwKChjb25maWcpID0+IGNvbmZpZy5sb2cpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIG1hcCgoY29uZmlnKSA9PiAoe1xuICAgICAgICBuYW1lOiAnbm9kZScsXG4gICAgICAgIHBhdGg6IGxvZ1BhdGgsXG4gICAgICAgIGxldmVsOiBjb25maWcubGV2ZWwsXG4gICAgICAgIG1heFNpemU6IGNvbmZpZy5tYXhTaXplLFxuICAgICAgICBtYXhGaWxlczogY29uZmlnLm1heEZpbGVzLFxuICAgICAgfSkpLFxuICAgIClcbiAgICAuc3Vic2NyaWJlKGxvZ0NvbmZpZyQpO1xuICBtdXRhYmxlU2h1dGRvd25GdW5jcy5wdXNoKCgpID0+IGxvZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICBjb25zdCBub2RlID0gYXdhaXQgY3JlYXRlRnVsbE5vZGUoe1xuICAgIGRhdGFQYXRoLFxuICAgIG5vZGVDb25maWcsXG4gICAgbW9uaXRvcixcbiAgfSk7XG5cbiAgcmV0dXJuIHsgbm9kZSwgb3B0aW9ucyB9O1xufTtcbiJdfQ==