1 | import { Action } from 'argparse';
|
2 |
|
3 |
|
4 | const DEFAULT_CAPS_ARG = '--default-capabilities';
|
5 |
|
6 |
|
7 | class StoreDeprecatedAction extends Action {
|
8 | constructor (options = {}) {
|
9 | const opts = Object.assign({}, options);
|
10 | let helpPrefix = '[DEPRECATED]';
|
11 | if (opts.deprecated_for) {
|
12 | helpPrefix = `[DEPRECATED, use ${opts.deprecated_for} instead]`;
|
13 | delete opts.deprecated_for;
|
14 | }
|
15 | if (opts.help) {
|
16 | opts.help = `${helpPrefix} - ${opts.help}`;
|
17 | } else {
|
18 | opts.help = helpPrefix;
|
19 | }
|
20 | super(opts);
|
21 | }
|
22 |
|
23 | call (parser, namespace, values) {
|
24 | namespace[this.dest] = values;
|
25 | }
|
26 | }
|
27 |
|
28 |
|
29 | class StoreDeprecatedTrueAction extends StoreDeprecatedAction {
|
30 | constructor (options = {}) {
|
31 | super(Object.assign({}, options, {const: true, nargs: 0}));
|
32 | }
|
33 |
|
34 | call (parser, namespace) {
|
35 | namespace[this.dest] = this.const;
|
36 | }
|
37 | }
|
38 |
|
39 |
|
40 | class StoreDeprecatedDefaultCapabilityAction extends StoreDeprecatedAction {
|
41 | constructor (options = {}) {
|
42 | super(Object.assign({}, options, {deprecated_for: DEFAULT_CAPS_ARG}));
|
43 | }
|
44 |
|
45 | _writeDefaultCap (namespace, value) {
|
46 | namespace[this.dest] = value;
|
47 | if (value === this.default) {
|
48 | return;
|
49 | }
|
50 |
|
51 | if (!namespace.defaultCapabilities) {
|
52 | namespace.defaultCapabilities = {};
|
53 | }
|
54 | namespace.defaultCapabilities[this.dest] = value;
|
55 | }
|
56 |
|
57 | call (parser, namespace, values) {
|
58 | this._writeDefaultCap(namespace, values);
|
59 | }
|
60 | }
|
61 |
|
62 |
|
63 | class StoreDeprecatedDefaultCapabilityTrueAction extends StoreDeprecatedDefaultCapabilityAction {
|
64 | constructor (options = {}) {
|
65 | super(Object.assign({}, options, {const: true, nargs: 0}));
|
66 | }
|
67 |
|
68 | call (parser, namespace) {
|
69 | this._writeDefaultCap(namespace, this.const);
|
70 | }
|
71 | }
|
72 |
|
73 | export {
|
74 | StoreDeprecatedAction, StoreDeprecatedTrueAction,
|
75 | StoreDeprecatedDefaultCapabilityAction, StoreDeprecatedDefaultCapabilityTrueAction,
|
76 | DEFAULT_CAPS_ARG,
|
77 | };
|