summaryrefslogtreecommitdiffstats
path: root/lib/cli/parse.js
blob: 0fa509a36c7a1bfe455f21bd9baa3e9ec692bed3 (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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
var options = require('./options');
var getBook = require('./getBook');

var Parse = require('../parse');

function printBook(book) {
    var logger = book.getLogger();

    var config = book.getConfig();
    var configFile = config.getFile();

    var summary = book.getSummary();
    var summaryFile = summary.getFile();

    var readme = book.getReadme();
    var readmeFile = readme.getFile();

    var glossary = book.getGlossary();
    var glossaryFile = glossary.getFile();

    if (configFile.exists()) {
        logger.info.ln('Configuration file is', configFile.getPath());
    }

    if (readmeFile.exists()) {
        logger.info.ln('Introduction file is', readmeFile.getPath());
    }

    if (glossaryFile.exists()) {
        logger.info.ln('Glossary file is', glossaryFile.getPath());
    }

    if (summaryFile.exists()) {
        logger.info.ln('Table of Contents file is', summaryFile.getPath());
    }
}

function printMultingualBook(book) {
    var logger = book.getLogger();
    var languages = book.getLanguages();
    var books = book.getBooks();

    logger.info.ln(languages.size + ' languages');

    languages.forEach(function(lang) {
        logger.info.ln('Language:', lang.getTitle());
        printBook(books.get(lang.getID()));
        logger.info.ln('');
    });
}

module.exports = {
    name: 'parse [book]',
    description: 'parse and print debug information about a book',
    options: [
        options.log
    ],
    exec: function(args, kwargs) {
        var book = getBook(args, kwargs);
        var logger = book.getLogger();

        return Parse.parseBook(book)
        .then(function(resultBook) {
            var rootFolder = book.getRoot();
            var contentFolder = book.getContentRoot();

            logger.info.ln('Book located in:', rootFolder);
            if (contentFolder != rootFolder) {
                logger.info.ln('Content located in:', contentFolder);
            }

            if (resultBook.isMultilingual()) {
                printMultingualBook(resultBook);
            } else {
                printBook(resultBook);
            }
        });
    }
};