absenat
Version:
dedicated messaging service core
52 lines (50 loc) • 2.31 kB
JavaScript
/**
* @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();
}
});
});