UNPKG

speculate

Version:

Automatically generates an RPM Spec file for your Node.js project

52 lines (40 loc) 1.38 kB
#! /usr/bin/env node 'use strict'; const path = require('path'); const program = require('commander'); const validator = require('../lib/validator'); const generate = require('../lib/generate'); const clean = require('../lib/clean'); const commandPkg = require('../package'); const cwd = process.cwd(); const isValid = validator(cwd); if (!isValid) { // eslint-disable-next-line no-console console.error('Please run speculate from within a valid Node.js project'); process.exit(1); } const projectPkg = require(path.resolve(cwd, './package.json')); program .version(commandPkg.version) .option('-r --release <release>', 'Specify release number of package') .option('-n --name <name>', 'Specify custom name for package') .parse(process.argv); const options = program.opts(); // Commander has a magic property called name when not overridden by a parameter const name = options.name instanceof Function ? undefined : options.name; async function runTasks() { clean(cwd, projectPkg); try { const files = await generate(cwd, projectPkg, options.release, name); files.forEach((file) => { // eslint-disable-next-line no-console console.log('Created ./%s', file); }); process.exit(0); } catch (err) { // eslint-disable-next-line no-console console.error('Error:', err.message); process.exit(1); } } runTasks();