Files
appium/lib/cli/argparse-actions.js
T

78 lines
1.8 KiB
JavaScript

import { Action } from 'argparse';
const DEFAULT_CAPS_ARG = '--default-capabilities';
class StoreDeprecatedAction extends Action {
constructor (options = {}) {
const opts = Object.assign({}, options);
let helpPrefix = '[DEPRECATED]';
if (opts.deprecated_for) {
helpPrefix = `[DEPRECATED, use ${opts.deprecated_for} instead]`;
delete opts.deprecated_for;
}
if (opts.help) {
opts.help = `${helpPrefix} - ${opts.help}`;
} else {
opts.help = helpPrefix;
}
super(opts);
}
call (parser, namespace, values) {
namespace[this.dest] = values;
}
}
class StoreDeprecatedTrueAction extends StoreDeprecatedAction {
constructor (options = {}) {
super(Object.assign({}, options, {const: true, nargs: 0}));
}
call (parser, namespace) {
namespace[this.dest] = this.const;
}
}
class StoreDeprecatedDefaultCapabilityAction extends StoreDeprecatedAction {
constructor (options = {}) {
super(Object.assign({}, options, {deprecated_for: DEFAULT_CAPS_ARG}));
}
_writeDefaultCap (namespace, value) {
namespace[this.dest] = value;
if (value === this.default) {
return;
}
if (!namespace.defaultCapabilities) {
namespace.defaultCapabilities = {};
}
namespace.defaultCapabilities[this.dest] = value;
}
call (parser, namespace, values) {
this._writeDefaultCap(namespace, values);
}
}
class StoreDeprecatedDefaultCapabilityTrueAction extends StoreDeprecatedDefaultCapabilityAction {
constructor (options = {}) {
super(Object.assign({}, options, {const: true, nargs: 0}));
}
call (parser, namespace) {
this._writeDefaultCap(namespace, this.const);
}
}
export {
StoreDeprecatedAction, StoreDeprecatedTrueAction,
StoreDeprecatedDefaultCapabilityAction, StoreDeprecatedDefaultCapabilityTrueAction,
DEFAULT_CAPS_ARG,
};