Initial commit
[yaffs-website] / node_modules / argparse / lib / help / added_formatters.js
1 'use strict';
2
3 var util    = require('util');
4
5 // Constants
6 var c = require('../const');
7
8 var $$ = require('../utils');
9 var HelpFormatter = require('./formatter.js');
10
11 /**
12  * new RawDescriptionHelpFormatter(options)
13  * new ArgumentParser({formatterClass: argparse.RawDescriptionHelpFormatter, ...})
14  *
15  * Help message formatter which adds default values to argument help.
16  *
17  * Only the name of this class is considered a public API. All the methods
18  * provided by the class are considered an implementation detail.
19  **/
20
21 function ArgumentDefaultsHelpFormatter(options) {
22   HelpFormatter.call(this, options);
23 }
24
25 util.inherits(ArgumentDefaultsHelpFormatter, HelpFormatter);
26
27 ArgumentDefaultsHelpFormatter.prototype._getHelpString = function (action) {
28   var help = action.help;
29   if (action.help.indexOf('%(defaultValue)s') === -1) {
30     if (action.defaultValue !== c.SUPPRESS) {
31       var defaulting_nargs = [ c.OPTIONAL, c.ZERO_OR_MORE ];
32       if (action.isOptional() || (defaulting_nargs.indexOf(action.nargs) >= 0)) {
33         help += ' (default: %(defaultValue)s)';
34       }
35     }
36   }
37   return help;
38 };
39
40 module.exports.ArgumentDefaultsHelpFormatter = ArgumentDefaultsHelpFormatter;
41
42 /**
43  * new RawDescriptionHelpFormatter(options)
44  * new ArgumentParser({formatterClass: argparse.RawDescriptionHelpFormatter, ...})
45  *
46  * Help message formatter which retains any formatting in descriptions.
47  *
48  * Only the name of this class is considered a public API. All the methods
49  * provided by the class are considered an implementation detail.
50  **/
51
52 function RawDescriptionHelpFormatter(options) {
53   HelpFormatter.call(this, options);
54 }
55
56 util.inherits(RawDescriptionHelpFormatter, HelpFormatter);
57
58 RawDescriptionHelpFormatter.prototype._fillText = function (text, width, indent) {
59   var lines = text.split('\n');
60   lines = lines.map(function (line) {
61     return $$.trimEnd(indent + line);
62   });
63   return lines.join('\n');
64 };
65 module.exports.RawDescriptionHelpFormatter = RawDescriptionHelpFormatter;
66
67 /**
68  * new RawTextHelpFormatter(options)
69  * new ArgumentParser({formatterClass: argparse.RawTextHelpFormatter, ...})
70  *
71  * Help message formatter which retains formatting of all help text.
72  *
73  * Only the name of this class is considered a public API. All the methods
74  * provided by the class are considered an implementation detail.
75  **/
76
77 function RawTextHelpFormatter(options) {
78   RawDescriptionHelpFormatter.call(this, options);
79 }
80
81 util.inherits(RawTextHelpFormatter, RawDescriptionHelpFormatter);
82
83 RawTextHelpFormatter.prototype._splitLines = function (text) {
84   return text.split('\n');
85 };
86
87 module.exports.RawTextHelpFormatter = RawTextHelpFormatter;