pankaryp/crana

View on GitHub
index.js

Summary

Maintainability
A
0 mins
Test Coverage
#!/usr/bin/env node
const program = require('commander');

const createProject = require('./src/create');
const { commands, preHook } = require('./src/scripts');
const { log, colorize } = require('./src/util');

const { version } = require('./package.json');

program
  .version(version)
  .description('Create client + server apps with one CLI command. Easy. Unobstrusive. Powerful.');

program
  .command('init <projectName> [projectFolderName]')
  .description('Initialize a project.')
  .action((projectName, projectFolderName) => {
    createProject({ projectName, projectFolderName });
  });

commands.forEach(({ name, fn, description = '' }) => {
  program
    .command(name)
    .description(description)
    .action(async () => {
      const { error } = await preHook();
      if (!error)
        fn();
      else
        log({ text: colorize(error).FgRed(), type: 'error' });
    });
});

program.parse(process.argv);