summaryrefslogtreecommitdiffstats
path: root/packages/gitbook/src/cli/build.js
blob: 1816326dbfdc37bb6412be4a391dc5059165e941 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const Parse = require('../parse');
const Output = require('../output');
const timing = require('../utils/timing');

const options = require('./options');
const getBook = require('./getBook');
const getOutputFolder = require('./getOutputFolder');


module.exports = {
    name: 'build [book] [output]',
    description: 'build a book',
    options: [
        options.log,
        options.format,
        options.timing
    ],
    exec(args, kwargs) {
        const book = getBook(args, kwargs);
        const outputFolder = getOutputFolder(args);

        const Generator = Output.getGenerator(kwargs.format);

        return Parse.parseBook(book)
        .then((resultBook) => {
            return Output.generate(Generator, resultBook, {
                root: outputFolder
            });
        })
        .fin(() => {
            if (kwargs.timing) timing.dump(book.getLogger());
        });
    }
};