@wavesenterprise/generator-cli
Version:
Waves Enterprise transactions generator CLI
57 lines (51 loc) • 1.52 kB
text/typescript
import * as fs from "fs";
const chalk = require('chalk');
// const clear = require('clear');
const figlet = require('figlet');
const path = require('path');
const program = require('commander');
import { Generator } from "./generator";
import { parseConfig } from "./configParser";
import { IConfig } from "./interfaces";
// clear();
console.log(
chalk.green(
figlet.textSync('tx generator', { horizontalLayout: 'full' })
)
);
program
.version('0.2.0')
.description("Waves enterprise transactions generator")
.option('-c, --configPath <type>', 'Config file path')
.option('-o, --output <type>', 'Output directory', 'output')
.option('-broadcast, --broadcast', 'Broadcast', false)
.option('-concurrency, --concurrency <type>', 'Concurrency', null)
.parse(process.argv);
const options = program.opts()
const { configPath, broadcast, concurrency } = options
if (configPath) {
if(fs.existsSync(configPath)) {
const rawData = fs.readFileSync(configPath)
let config: IConfig | null = null
try {
config = parseConfig(rawData.toString(), options)
} catch (e) {
console.log('Parse config error:', e.message)
process.exit()
}
if (config) {
const generator = new Generator(config)
if (broadcast) {
generator.broadcast({ concurrency: parseInt(concurrency) })
} else {
generator.start()
}
}
} else {
console.log(`Cannot read config file: "${configPath}". Check -c option`)
}
}
if (!process.argv.slice(2).length) {
program.outputHelp();
}