diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-12-22 10:18:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-22 10:18:38 +0100 |
commit | 194ebc3da9641ff96f083f9d8ab43c2d27944f9a (patch) | |
tree | c50988f32ccf18df93ae7ab40be78e9459642818 /packages/gitbook-plugin/src/cli.js | |
parent | 64ccb6b00b4b63fa0e516d4e35351275b34f8c07 (diff) | |
parent | 16af264360e48e8a833e9efa9ab8d194574dbc70 (diff) | |
download | gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.zip gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.gz gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.bz2 |
Merge pull request #1543 from GitbookIO/dream
React for rendering website with plugins
Diffstat (limited to 'packages/gitbook-plugin/src/cli.js')
-rw-r--r-- | packages/gitbook-plugin/src/cli.js | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/packages/gitbook-plugin/src/cli.js b/packages/gitbook-plugin/src/cli.js new file mode 100644 index 0000000..06e421d --- /dev/null +++ b/packages/gitbook-plugin/src/cli.js @@ -0,0 +1,84 @@ +#! /usr/bin/env node + +const program = require('commander'); +const path = require('path'); +const winston = require('winston'); +const inquirer = require('inquirer'); + +const pkg = require('../package.json'); +const compile = require('./compile'); +const create = require('./create'); + +const resolve = (input => path.resolve(process.cwd(), input)); + +program.version(pkg.version); +winston.cli(); + +program + .command('build [input] [output]') + .description('build a browser plugin') + .action(function(input, output, options) { + compile(resolve(input), resolve(output)) + .then( + () => winston.info('Plugin compiled successfully'), + (err) => winston.error('Error: ', err) + ); + }); + +program + .command('create [output]') + .description('create a new plugin') + .action(function(output, options) { + inquirer.prompt([ + { + name: 'title', + message: 'Title (as displayed on GitBook.com):' + }, + { + name: 'name', + message: 'Name (unique identifier for the plugin):' + }, + { + name: 'desc', + message: 'Description:' + }, + { + name: 'github', + message: 'GitHub repository URL:' + }, + { + name: 'categories', + message: 'Categories (as displayed on GitBook.com):', + type: 'checkbox', + choices: [ + 'analytics', + 'search', + 'content', + 'structure', + 'social', + 'visual' + ] + } + ]) + .then(answers => { + output = resolve(output || answers.name); + return create(output, answers); + }) + .then( + () => winston.info(`Plugin created successfully in "${output}"`), + (err) => winston.error('Error: ', err) + ); + }); + +program + .command('test [plugin]') + .description('test specs for a plugin') + .action(function(plugin, options) { + + }); + + +program.parse(process.argv); + +// Display help if no arguments +if (!program.args.length) program.help(); |