grapi-cli
Version:
a cli tool to generate loopback 4 applications with extra features like caching & fuzzy search
33 lines (32 loc) • 1.35 kB
JavaScript
import { Args, Command } from '@oclif/core';
import chalk from 'chalk';
import { processOptions, execute, standardFlags, prompt } from '../utils/index.js';
export default class Example extends Command {
static description = 'download examples.';
static args = {
['example-name']: Args.string({ description: 'Optional name of the example to clone. If provided, the tool will skip the example-name prompt and run in a non-interactive mode.', }),
};
static flags = {
...standardFlags
};
async run() {
const parsed = await this.parse(Example);
if (!parsed.flags.config)
return prompt('example', parsed.flags);
let options = processOptions(parsed.flags);
let configs = '';
if (Object.keys(options).length) {
configs = ` --config='${JSON.stringify(options)}' `;
}
let argument = '';
if (parsed.args['example-name']) {
argument = ` ${parsed.args['example-name']}`;
}
const command = `lb4 example${argument}${configs}--yes`;
const executed = await execute(command, 'downloading example.');
if (executed.stderr)
console.log(chalk.bold(chalk.green(executed.stderr)));
if (executed.stdout)
console.log(chalk.bold(chalk.green(executed.stdout)));
}
}