UNPKG

absenat

Version:

dedicated messaging service core

52 lines (50 loc) 2.31 kB
/** * @author mr-exception * @description this script creates a new profile or replaces the old profile */ const chalk = require('chalk'); const fs = require('fs'); const standard_input = process.stdin; standard_input.setEncoding('utf-8'); const readline = require('readline').createInterface({ input: standard_input, output: process.stdout }); readline.question(`profile name: `, nickname => { readline.question(`port: `, port => { console.log('building profile...'); console.log(`creating ${chalk.blue('keys')}...`); const NodeRSA = require('node-rsa'); const key = new NodeRSA({ b: 512 }); const public_key = key.exportKey('pkcs8-public').replace('-----BEGIN PUBLIC KEY-----\n', '').replace('\n-----END PUBLIC KEY-----', '').replace(/\n/g, ''); const private_key = key.exportKey('pkcs8-private').replace('-----BEGIN PRIVATE KEY-----\n', '').replace('\n-----END PRIVATE KEY-----', '').replace(/\n/g, ''); console.log(chalk.green('key created successfylly!')); console.log(`${chalk.blue('public key')}: ${public_key}`); console.log(`${chalk.blue('private key')}: ${private_key}`); console.log('saving profile...'); if (!fs.existsSync('./configs')) { fs.mkdirSync('./configs'); } if (fs.existsSync(`./configs/${nickname}.json`)) { readline.question(`profile exists, do you want to replace the new profile created? (y|n): `, answer => { if (/[Yy]{1}/.test(answer)) { console.log(`replacing new profile at ${chalk.blue(`./configs/${nickname}.json`)}`); fs.writeFileSync(`./configs/${nickname}.json`, JSON.stringify({ nickname, public_key, private_key, port, max_timeout: 5000, })); console.log(chalk.green(`profile saved successfully now enter: ${chalk.blue(`node index.js --fresh --config ${nickname}`)}`)); readline.close(); } else { console.log(chalk.red('abort.')); readline.close(); } }); } else { fs.writeFileSync(`./configs/${nickname}.json`, JSON.stringify({ nickname, public_key, private_key, port, max_timeout: 5000, })); console.log(chalk.green(`profile saved successfully now enter: ${chalk.blue(`node index.js --fresh --config ${nickname}`)}`)); readline.close(); } }); });