@esgettext/tools 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +19 -0
- package/README.md +126 -0
- package/bin/esgettext-install.js +5 -0
- package/bin/esgettext-mo2json.js +5 -0
- package/bin/esgettext-msgfmt-all.js +5 -0
- package/bin/esgettext-msgmerge-all.js +5 -0
- package/bin/esgettext-xgettext.js +5 -0
- package/dist/cli/getopt.d.ts +34 -0
- package/dist/cli/getopt.js +150 -0
- package/dist/cli/getopt.js.map +1 -0
- package/dist/cli/getopt.spec.d.ts +1 -0
- package/dist/cli/getopt.spec.js +164 -0
- package/dist/cli/getopt.spec.js.map +1 -0
- package/dist/cli/install.d.ts +1 -0
- package/dist/cli/install.js +91 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/mo2json-cli.d.ts +1 -0
- package/dist/cli/mo2json-cli.js +48 -0
- package/dist/cli/mo2json-cli.js.map +1 -0
- package/dist/cli/msgfmt-all.d.ts +1 -0
- package/dist/cli/msgfmt-all.js +99 -0
- package/dist/cli/msgfmt-all.js.map +1 -0
- package/dist/cli/msgmerge-all.d.ts +1 -0
- package/dist/cli/msgmerge-all.js +85 -0
- package/dist/cli/msgmerge-all.js.map +1 -0
- package/dist/cli/xgettext-cli.d.ts +1 -0
- package/dist/cli/xgettext-cli.js +303 -0
- package/dist/cli/xgettext-cli.js.map +1 -0
- package/dist/install/install.d.ts +10 -0
- package/dist/install/install.js +157 -0
- package/dist/install/install.js.map +1 -0
- package/dist/msgfmt-all/msgfmt-all.d.ts +8 -0
- package/dist/msgfmt-all/msgfmt-all.js +142 -0
- package/dist/msgfmt-all/msgfmt-all.js.map +1 -0
- package/dist/msgmerge-all/msgmerge-all.d.ts +9 -0
- package/dist/msgmerge-all/msgmerge-all.js +157 -0
- package/dist/msgmerge-all/msgmerge-all.js.map +1 -0
- package/dist/package.d.ts +4 -0
- package/dist/package.js +17 -0
- package/dist/package.js.map +1 -0
- package/dist/parser/__snapshots__/javascript.spec.js.snap +56 -0
- package/dist/parser/__snapshots__/po.spec.js.snap +176 -0
- package/dist/parser/javascript.d.ts +4 -0
- package/dist/parser/javascript.js +47 -0
- package/dist/parser/javascript.js.map +1 -0
- package/dist/parser/javascript.spec.d.ts +1 -0
- package/dist/parser/javascript.spec.js +436 -0
- package/dist/parser/javascript.spec.js.map +1 -0
- package/dist/parser/parser.d.ts +45 -0
- package/dist/parser/parser.js +582 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/parser/po.d.ts +22 -0
- package/dist/parser/po.js +394 -0
- package/dist/parser/po.js.map +1 -0
- package/dist/parser/po.spec.d.ts +1 -0
- package/dist/parser/po.spec.js +296 -0
- package/dist/parser/po.spec.js.map +1 -0
- package/dist/parser/typescript.d.ts +4 -0
- package/dist/parser/typescript.js +47 -0
- package/dist/parser/typescript.js.map +1 -0
- package/dist/parser/typescript.spec.d.ts +1 -0
- package/dist/parser/typescript.spec.js +106 -0
- package/dist/parser/typescript.spec.js.map +1 -0
- package/dist/pot/__snapshots__/catalog.spec.js.snap +591 -0
- package/dist/pot/catalog.d.ts +26 -0
- package/dist/pot/catalog.js +210 -0
- package/dist/pot/catalog.js.map +1 -0
- package/dist/pot/catalog.spec.d.ts +1 -0
- package/dist/pot/catalog.spec.js +240 -0
- package/dist/pot/catalog.spec.js.map +1 -0
- package/dist/pot/entry.d.ts +35 -0
- package/dist/pot/entry.js +322 -0
- package/dist/pot/entry.js.map +1 -0
- package/dist/pot/entry.spec.d.ts +1 -0
- package/dist/pot/entry.spec.js +317 -0
- package/dist/pot/entry.spec.js.map +1 -0
- package/dist/pot/keyword.d.ts +17 -0
- package/dist/pot/keyword.js +181 -0
- package/dist/pot/keyword.js.map +1 -0
- package/dist/pot/keyword.spec.d.ts +1 -0
- package/dist/pot/keyword.spec.js +54 -0
- package/dist/pot/keyword.spec.js.map +1 -0
- package/dist/xgettext/__snapshots__/xgettext.spec.js.snap +462 -0
- package/dist/xgettext/file-resolver.d.ts +5 -0
- package/dist/xgettext/file-resolver.js +23 -0
- package/dist/xgettext/file-resolver.js.map +1 -0
- package/dist/xgettext/file-resolver.spec.d.ts +1 -0
- package/dist/xgettext/file-resolver.spec.js +22 -0
- package/dist/xgettext/file-resolver.spec.js.map +1 -0
- package/dist/xgettext/files-collector.d.ts +5 -0
- package/dist/xgettext/files-collector.js +41 -0
- package/dist/xgettext/files-collector.js.map +1 -0
- package/dist/xgettext/files-collector.spec.d.ts +1 -0
- package/dist/xgettext/files-collector.spec.js +78 -0
- package/dist/xgettext/files-collector.spec.js.map +1 -0
- package/dist/xgettext/xgettext.d.ts +16 -0
- package/dist/xgettext/xgettext.js +335 -0
- package/dist/xgettext/xgettext.js.map +1 -0
- package/dist/xgettext/xgettext.spec.d.ts +1 -0
- package/dist/xgettext/xgettext.spec.js +743 -0
- package/dist/xgettext/xgettext.spec.js.map +1 -0
- package/package.json +88 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
This software is Copyright (C) 2020 by Guido Flohr.
|
|
2
|
+
|
|
3
|
+
This is free software, licensed under:
|
|
4
|
+
|
|
5
|
+
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE, Version 2, December 2004
|
|
6
|
+
|
|
7
|
+
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
8
|
+
Version 2, December 2004
|
|
9
|
+
|
|
10
|
+
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
|
11
|
+
|
|
12
|
+
Everyone is permitted to copy and distribute verbatim or modified
|
|
13
|
+
copies of this license document, and changing it is allowed as long
|
|
14
|
+
as the name is changed.
|
|
15
|
+
|
|
16
|
+
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
17
|
+
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
18
|
+
|
|
19
|
+
0. You just DO WHAT THE FUCK YOU WANT TO.
|
package/README.md
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# @esgettext/tools <!-- omit in toc -->
|
|
2
|
+
|
|
3
|
+
Supporting tools for https://github.com/gflohr/esgettext.
|
|
4
|
+
|
|
5
|
+
## Table of Contents <!-- omit in toc -->
|
|
6
|
+
|
|
7
|
+
- [Status](#status)
|
|
8
|
+
- [Prerequisites](#prerequisites)
|
|
9
|
+
- [Un*x/Linux](#unxlinux)
|
|
10
|
+
- [Mac OS X](#mac-os-x)
|
|
11
|
+
- [MacPorts](#macports)
|
|
12
|
+
- [HomeBrew](#homebrew)
|
|
13
|
+
- [MS-DOS (Microsoft Windows)](#ms-dos-microsoft-windows)
|
|
14
|
+
- [Installation](#installation)
|
|
15
|
+
- [The Tools](#the-tools)
|
|
16
|
+
- [`esgettext-gettextize`](#esgettext-gettextize)
|
|
17
|
+
- [`esgettext-xgettext`](#esgettext-xgettext)
|
|
18
|
+
- [Copyright](#copyright)
|
|
19
|
+
|
|
20
|
+
## Status
|
|
21
|
+
|
|
22
|
+
in development.
|
|
23
|
+
|
|
24
|
+
## Prerequisites
|
|
25
|
+
|
|
26
|
+
Most of the esgettext tools depend at least indirectly on the GNU gettext
|
|
27
|
+
tools. If the command `xgettext --version` outputs some kind of version
|
|
28
|
+
information, you are most probably set. Otherwise check the information for
|
|
29
|
+
your platform below.
|
|
30
|
+
|
|
31
|
+
### Un*x/Linux
|
|
32
|
+
|
|
33
|
+
Use the package manager of your vendor to search for something like
|
|
34
|
+
"gettext-tools" or just "gettext" and install it. The gettext tools are
|
|
35
|
+
available for every Unix or Linux flavor.
|
|
36
|
+
|
|
37
|
+
### Mac OS X
|
|
38
|
+
|
|
39
|
+
You either need [MacPorts](https://www.macports.org/)
|
|
40
|
+
or [HomeBrew](https://brew.sh/).
|
|
41
|
+
|
|
42
|
+
#### MacPorts
|
|
43
|
+
|
|
44
|
+
```shell
|
|
45
|
+
$ sudo port install gettext
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
#### HomeBrew
|
|
49
|
+
|
|
50
|
+
```shell
|
|
51
|
+
$ brew install gettext
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### MS-DOS (Microsoft Windows)
|
|
55
|
+
|
|
56
|
+
The options that I know of are
|
|
57
|
+
|
|
58
|
+
* [Cygwin](https://www.cygwin.com/)
|
|
59
|
+
* [MinGW](http://www.mingw.org/)
|
|
60
|
+
|
|
61
|
+
See their documentation for more information.
|
|
62
|
+
|
|
63
|
+
If you have better information, please
|
|
64
|
+
[file an issue](https://github.com/gflohr/esgettext/issues) or improve the
|
|
65
|
+
documentation with a [pull request](https://github.com/gflohr/esgettext).
|
|
66
|
+
|
|
67
|
+
## Installation
|
|
68
|
+
|
|
69
|
+
You don't have to install the esgettext tools globally but if you are lazy,
|
|
70
|
+
just do it. For [npm](https://www.npmjs.com/) you go with:
|
|
71
|
+
|
|
72
|
+
```shell
|
|
73
|
+
$ sudo npm install --global @esgettext/tools
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
For [Yarn](https://yarnpkg.com/), you would do this:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
$ sudo yarn global add @esgettext/tools
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
But you should rather install [npx](https://www.npmjs.com/package/npx), because
|
|
83
|
+
then you can (es)gettextize your project like this:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
$ npm install --save-dev @esgettext/tools
|
|
87
|
+
$ npx @esgettext/gettextize
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
or for yarn:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
$ yarn add --dev @esgettext/tools
|
|
94
|
+
$ npx @esgettext/gettextize
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
This will modify your `package.json` with a couple of scripts, all named
|
|
98
|
+
`po:.*`. You can then finetune your setup by just editing `package.json`.
|
|
99
|
+
|
|
100
|
+
## The Tools
|
|
101
|
+
|
|
102
|
+
### `esgettext-gettextize`
|
|
103
|
+
|
|
104
|
+
The script `esgettext-gettextize` sets up your project for being
|
|
105
|
+
internationalized with esgettext.
|
|
106
|
+
|
|
107
|
+
See the detailed
|
|
108
|
+
[esgettext-gettextize usage information](./README-esgettext-gettextize.md)
|
|
109
|
+
for more details.
|
|
110
|
+
|
|
111
|
+
### `esgettext-xgettext`
|
|
112
|
+
|
|
113
|
+
The script `esgetext-xgettext` extracts translatable strings from your source
|
|
114
|
+
files into `.po` resp. `.pot` files.
|
|
115
|
+
|
|
116
|
+
See the detailed
|
|
117
|
+
[esgettext-xgettext usage information](./README-esgettext-xgettext.md)
|
|
118
|
+
for more details.
|
|
119
|
+
|
|
120
|
+
## Copyright
|
|
121
|
+
|
|
122
|
+
Copyright (C) 2020 Guido Flohr <guido.flohr@cantanea.com>, all
|
|
123
|
+
rights reserved.
|
|
124
|
+
|
|
125
|
+
This software is available under the terms and conditions of the
|
|
126
|
+
[WFTPL](http://www.wtfpl.net/about).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import yargs from 'yargs';
|
|
2
|
+
export interface Options {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
}
|
|
5
|
+
export interface OptionFlags {
|
|
6
|
+
multiple?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface Option {
|
|
9
|
+
name: string;
|
|
10
|
+
flags?: OptionFlags;
|
|
11
|
+
yargsOptions: yargs.Options;
|
|
12
|
+
}
|
|
13
|
+
export interface OptionGroup {
|
|
14
|
+
description: string;
|
|
15
|
+
options: Array<Option>;
|
|
16
|
+
}
|
|
17
|
+
export interface GetoptOptions {
|
|
18
|
+
hasVerboseOption?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare class Getopt {
|
|
21
|
+
readonly programName: string;
|
|
22
|
+
private cli;
|
|
23
|
+
private readonly allowedKeys;
|
|
24
|
+
private readonly defaultFlags;
|
|
25
|
+
private readonly hasVerboseOption;
|
|
26
|
+
constructor(usage: string, description: string, optionGroups: OptionGroup[], options?: GetoptOptions);
|
|
27
|
+
argv(args?: {
|
|
28
|
+
[x: string]: unknown;
|
|
29
|
+
_: string[];
|
|
30
|
+
$0: string;
|
|
31
|
+
}): Options;
|
|
32
|
+
private buildUsage;
|
|
33
|
+
private addDefaultOptions;
|
|
34
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Getopt = void 0;
|
|
7
|
+
var yargs_1 = __importDefault(require("yargs"));
|
|
8
|
+
var camelcase_1 = __importDefault(require("camelcase"));
|
|
9
|
+
var runtime_1 = require("@esgettext/runtime");
|
|
10
|
+
var package_1 = require("../package");
|
|
11
|
+
var gtx = runtime_1.Textdomain.getInstance('tools');
|
|
12
|
+
var Getopt = (function () {
|
|
13
|
+
function Getopt(usage, description, optionGroups, options) {
|
|
14
|
+
var _this = this;
|
|
15
|
+
this.cli = yargs_1.default;
|
|
16
|
+
this.allowedKeys = new Map();
|
|
17
|
+
this.defaultFlags = {};
|
|
18
|
+
this.programName = process.argv[1].split(/[\\/]/).pop();
|
|
19
|
+
this.buildUsage(usage, description);
|
|
20
|
+
if (!options) {
|
|
21
|
+
options = {};
|
|
22
|
+
}
|
|
23
|
+
this.hasVerboseOption = options.hasVerboseOption || false;
|
|
24
|
+
this.allowedKeys.set('help', this.defaultFlags);
|
|
25
|
+
this.allowedKeys.set('h', this.defaultFlags);
|
|
26
|
+
this.allowedKeys.set('version', this.defaultFlags);
|
|
27
|
+
this.allowedKeys.set('V', this.defaultFlags);
|
|
28
|
+
this.allowedKeys.set('_', this.defaultFlags);
|
|
29
|
+
this.allowedKeys.set('$0', this.defaultFlags);
|
|
30
|
+
if (this.hasVerboseOption) {
|
|
31
|
+
this.allowedKeys.set('verbose', this.defaultFlags);
|
|
32
|
+
this.allowedKeys.set('v', this.defaultFlags);
|
|
33
|
+
}
|
|
34
|
+
for (var i = 0; i < optionGroups.length; ++i) {
|
|
35
|
+
var group = optionGroups[i];
|
|
36
|
+
var options_1 = group.options;
|
|
37
|
+
var optionKeys = options_1.map(function (option) { return option.name; });
|
|
38
|
+
var _loop_1 = function (j) {
|
|
39
|
+
var option = options_1[j];
|
|
40
|
+
var flags = option.flags || this_1.defaultFlags;
|
|
41
|
+
this_1.allowedKeys.set(option.name, flags);
|
|
42
|
+
this_1.allowedKeys.set((0, camelcase_1.default)(option.name), flags);
|
|
43
|
+
var alias = typeof option.yargsOptions.alias === 'string'
|
|
44
|
+
? [option.yargsOptions.alias]
|
|
45
|
+
: option.yargsOptions.alias;
|
|
46
|
+
if (alias) {
|
|
47
|
+
alias.map(function (a) { return _this.allowedKeys.set(a, flags); });
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
var this_1 = this;
|
|
51
|
+
for (var j = 0; j < options_1.length; ++j) {
|
|
52
|
+
_loop_1(j);
|
|
53
|
+
}
|
|
54
|
+
this.cli = this.cli.group(optionKeys, group.description);
|
|
55
|
+
for (var j = 0; j < options_1.length; ++j) {
|
|
56
|
+
this.cli = this.cli.option(options_1[j].name, options_1[j].yargsOptions);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
this.addDefaultOptions();
|
|
60
|
+
}
|
|
61
|
+
Getopt.prototype.argv = function (args) {
|
|
62
|
+
if (typeof args === 'undefined') {
|
|
63
|
+
args = this.cli.argv;
|
|
64
|
+
}
|
|
65
|
+
var keys = Object.keys(args);
|
|
66
|
+
if (keys.includes('help')) {
|
|
67
|
+
this.cli.showHelp('log');
|
|
68
|
+
}
|
|
69
|
+
for (var i = 0; i < keys.length; ++i) {
|
|
70
|
+
var key = keys[i];
|
|
71
|
+
if (key === '_') {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (!this.allowedKeys.has(key)) {
|
|
75
|
+
if (key.length > 1) {
|
|
76
|
+
throw new Error(gtx._x("'{programName}': unrecognized option '--{option}'", {
|
|
77
|
+
programName: this.programName,
|
|
78
|
+
option: key,
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
throw new Error(gtx._x("'{programName}': invalid option -- '{option}'", {
|
|
83
|
+
programName: this.programName,
|
|
84
|
+
option: key,
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
var flags = this.allowedKeys.get(key);
|
|
89
|
+
var value = args[key];
|
|
90
|
+
if (Array.isArray(value)) {
|
|
91
|
+
if (value.length > 1 && !flags.multiple) {
|
|
92
|
+
throw new Error(gtx._x("The option '{option}' can be given only once.", {
|
|
93
|
+
option: key,
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else if (flags.multiple) {
|
|
98
|
+
args[key] = [value];
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return args;
|
|
102
|
+
};
|
|
103
|
+
Getopt.prototype.buildUsage = function (usage, description) {
|
|
104
|
+
this.cli = this.cli.usage(gtx._x('Usage: {programName}', { programName: this.programName }) +
|
|
105
|
+
' ' +
|
|
106
|
+
usage +
|
|
107
|
+
'\n' +
|
|
108
|
+
'\n' +
|
|
109
|
+
description +
|
|
110
|
+
'\n' +
|
|
111
|
+
'\n' +
|
|
112
|
+
gtx._('Mandatory arguments to long options are mandatory for short options too.\n') +
|
|
113
|
+
gtx._('Similarly for optional arguments.\n') +
|
|
114
|
+
'\n' +
|
|
115
|
+
gtx._('Arguments to options are referred to in CAPS in the description.'));
|
|
116
|
+
};
|
|
117
|
+
Getopt.prototype.addDefaultOptions = function () {
|
|
118
|
+
var infoOptions = this.hasVerboseOption
|
|
119
|
+
? ['version', 'help', 'verbose']
|
|
120
|
+
: ['version', 'help'];
|
|
121
|
+
var version = package_1.Package.getVersion();
|
|
122
|
+
var packageName = package_1.Package.getName();
|
|
123
|
+
var versionString = "".concat(this.programName, " (").concat(packageName, ") ").concat(version, "\n") +
|
|
124
|
+
gtx._('LICENSE: WTFPL <http://www.wtfpl.net/about/>\n') +
|
|
125
|
+
gtx._('This is free software. You can do with it whatever you want.\n') +
|
|
126
|
+
gtx._('There is NO WARRANTY, to the extent permitted by law.\n') +
|
|
127
|
+
gtx._('Written by Guido Flohr.');
|
|
128
|
+
this.cli = this.cli.group(infoOptions, gtx._('Informative output'));
|
|
129
|
+
this.cli = this.cli
|
|
130
|
+
.option('help', {
|
|
131
|
+
alias: 'h',
|
|
132
|
+
description: gtx._('display this help and exit'),
|
|
133
|
+
})
|
|
134
|
+
.option('version', {
|
|
135
|
+
alias: 'v',
|
|
136
|
+
description: gtx._('output version information and exit'),
|
|
137
|
+
})
|
|
138
|
+
.version(versionString);
|
|
139
|
+
if (this.hasVerboseOption) {
|
|
140
|
+
this.cli = this.cli.options('verbose', {
|
|
141
|
+
alias: 'V',
|
|
142
|
+
description: gtx._('enable verbose output'),
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
this.cli = this.cli.epilogue(gtx._('Report bugs at https://github.com/gflohr/esgettext/issues'));
|
|
146
|
+
};
|
|
147
|
+
return Getopt;
|
|
148
|
+
}());
|
|
149
|
+
exports.Getopt = Getopt;
|
|
150
|
+
//# sourceMappingURL=getopt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getopt.js","sourceRoot":"","sources":["../../src/cli/getopt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var getopt_1 = require("./getopt");
|
|
4
|
+
function getArgv() {
|
|
5
|
+
return {
|
|
6
|
+
_: new Array(),
|
|
7
|
+
$0: 'ignore',
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
var logSpy = jest.spyOn(global.console, 'log').mockImplementation(function () {
|
|
11
|
+
});
|
|
12
|
+
var warnSpy = jest.spyOn(global.console, 'warn').mockImplementation(function () {
|
|
13
|
+
});
|
|
14
|
+
var errorSpy = jest.spyOn(global.console, 'warn').mockImplementation(function () {
|
|
15
|
+
});
|
|
16
|
+
describe('getting command line options', function () {
|
|
17
|
+
var optionGroups;
|
|
18
|
+
var getopt;
|
|
19
|
+
describe('bare minimum', function () {
|
|
20
|
+
beforeAll(function () {
|
|
21
|
+
optionGroups = [];
|
|
22
|
+
getopt = new getopt_1.Getopt('usage', 'description', optionGroups);
|
|
23
|
+
});
|
|
24
|
+
afterEach(function () {
|
|
25
|
+
jest.clearAllMocks();
|
|
26
|
+
});
|
|
27
|
+
it('to accept option --help', function () {
|
|
28
|
+
var args = getArgv();
|
|
29
|
+
args['help'] = true;
|
|
30
|
+
expect(getopt.argv(args)).toBeDefined();
|
|
31
|
+
expect(logSpy).toHaveBeenCalledTimes(1);
|
|
32
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
33
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
34
|
+
});
|
|
35
|
+
it('to accept option --version', function () {
|
|
36
|
+
var args = getArgv();
|
|
37
|
+
args['version'] = true;
|
|
38
|
+
expect(getopt.argv(args)).toBeDefined();
|
|
39
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
40
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
describe('simple option', function () {
|
|
44
|
+
beforeAll(function () {
|
|
45
|
+
optionGroups = [
|
|
46
|
+
{
|
|
47
|
+
description: 'File locations',
|
|
48
|
+
options: [
|
|
49
|
+
{
|
|
50
|
+
name: 'input',
|
|
51
|
+
yargsOptions: {
|
|
52
|
+
alias: 'i',
|
|
53
|
+
type: 'string',
|
|
54
|
+
describe: 'location of the input file',
|
|
55
|
+
demandOption: '--input is required',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
name: 'add-comments',
|
|
60
|
+
flags: { multiple: true },
|
|
61
|
+
yargsOptions: {
|
|
62
|
+
type: 'string',
|
|
63
|
+
describe: 'add comments',
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
getopt = new getopt_1.Getopt('usage', 'description', optionGroups);
|
|
70
|
+
});
|
|
71
|
+
afterEach(function () {
|
|
72
|
+
jest.clearAllMocks();
|
|
73
|
+
});
|
|
74
|
+
it('succeed with option --input', function () {
|
|
75
|
+
var args = getArgv();
|
|
76
|
+
args.input = 'something';
|
|
77
|
+
expect(getopt.argv(args)).toBeDefined();
|
|
78
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
79
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
80
|
+
});
|
|
81
|
+
it('succeed with option -i', function () {
|
|
82
|
+
var args = getArgv();
|
|
83
|
+
args.input = 'something';
|
|
84
|
+
expect(getopt.argv(args)).toBeDefined();
|
|
85
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
86
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
87
|
+
});
|
|
88
|
+
it('fail with multiple options --input', function () {
|
|
89
|
+
var args = getArgv();
|
|
90
|
+
args.input = ['something', 'else'];
|
|
91
|
+
expect(function () { return getopt.argv(args); }).toThrow();
|
|
92
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
93
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
94
|
+
});
|
|
95
|
+
it('succeed with option --add-comments', function () {
|
|
96
|
+
var args = getArgv();
|
|
97
|
+
args.addComments = 'something';
|
|
98
|
+
expect(getopt.argv(args)).toBeDefined();
|
|
99
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
100
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
101
|
+
});
|
|
102
|
+
it('fail with option -a', function () {
|
|
103
|
+
var args = getArgv();
|
|
104
|
+
args.a = 'something';
|
|
105
|
+
expect(function () { return getopt.argv(args); }).toThrow();
|
|
106
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
107
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
108
|
+
});
|
|
109
|
+
it('succeed with multiple options --add-commentts', function () {
|
|
110
|
+
var args = getArgv();
|
|
111
|
+
args.addComments = ['something', 'else'];
|
|
112
|
+
expect(getopt.argv(args)).toBeDefined();
|
|
113
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
114
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
115
|
+
});
|
|
116
|
+
it('to fail for unknown long options', function () {
|
|
117
|
+
var args = getArgv();
|
|
118
|
+
args['foobar'] = true;
|
|
119
|
+
expect(function () { return getopt.argv(args); }).toThrow();
|
|
120
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
121
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
122
|
+
});
|
|
123
|
+
it('to fail for unknown short options', function () {
|
|
124
|
+
var args = getArgv();
|
|
125
|
+
args['%'] = true;
|
|
126
|
+
expect(function () { return getopt.argv(args); }).toThrow();
|
|
127
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
128
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
describe('variants', function () {
|
|
132
|
+
afterEach(function () {
|
|
133
|
+
jest.clearAllMocks();
|
|
134
|
+
});
|
|
135
|
+
it('should add an option --verbose', function () {
|
|
136
|
+
var args = getArgv();
|
|
137
|
+
args['help'] = true;
|
|
138
|
+
var getoptLocal = new getopt_1.Getopt('local usage', 'local description', optionGroups, {
|
|
139
|
+
hasVerboseOption: true,
|
|
140
|
+
});
|
|
141
|
+
expect(getoptLocal.argv(args)).toBeDefined();
|
|
142
|
+
expect(logSpy).toHaveBeenCalledTimes(1);
|
|
143
|
+
var calls = logSpy.mock.calls;
|
|
144
|
+
expect(calls[0][0]).toMatch(new RegExp('--verbose'));
|
|
145
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
146
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
147
|
+
});
|
|
148
|
+
it.skip('should fall back to command-line arguments', function () {
|
|
149
|
+
var savedArgv = process.argv;
|
|
150
|
+
process.argv = ['/usr/local/bin/node', '/some/script/name', '--help'];
|
|
151
|
+
var getoptLocal = new getopt_1.Getopt('local usage', 'local description', optionGroups, {
|
|
152
|
+
hasVerboseOption: true,
|
|
153
|
+
});
|
|
154
|
+
expect(getoptLocal.argv()).toBeDefined();
|
|
155
|
+
process.argv = savedArgv;
|
|
156
|
+
expect(logSpy).toHaveBeenCalledTimes(1);
|
|
157
|
+
var calls = logSpy.mock.calls;
|
|
158
|
+
expect(calls[0][0]).toMatch(new RegExp('--verbose'));
|
|
159
|
+
expect(warnSpy).not.toHaveBeenCalled();
|
|
160
|
+
expect(errorSpy).not.toHaveBeenCalled();
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
//# sourceMappingURL=getopt.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getopt.spec.js","sourceRoot":"","sources":["../../src/cli/getopt.spec.ts"],"names":[],"mappings":";;AAAA,mCAA+C;AAE/C,SAAS,OAAO;IACf,OAAO;QACN,CAAC,EAAE,IAAI,KAAK,EAAU;QACtB,EAAE,EAAE,QAAQ;KACZ,CAAC;AACH,CAAC;AAED,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC;AAEpE,CAAC,CAAC,CAAC;AACH,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC;AAEtE,CAAC,CAAC,CAAC;AACH,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC;AAEvE,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8BAA8B,EAAE;IACxC,IAAI,YAAgC,CAAC;IACrC,IAAI,MAAc,CAAC;IAEnB,QAAQ,CAAC,cAAc,EAAE;QACxB,SAAS,CAAC;YACT,YAAY,GAAG,EAAE,CAAC;YAClB,MAAM,GAAG,IAAI,eAAM,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC;YACT,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yBAAyB,EAAE;YAC7B,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE;YAChC,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;YACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE;QACzB,SAAS,CAAC;YACT,YAAY,GAAG;gBACd;oBACC,WAAW,EAAE,gBAAgB;oBAC7B,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,OAAO;4BACb,YAAY,EAAE;gCACb,KAAK,EAAE,GAAG;gCACV,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,4BAA4B;gCACtC,YAAY,EAAE,qBAAqB;6BACnC;yBACD;wBACD;4BACC,IAAI,EAAE,cAAc;4BACpB,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;4BACzB,YAAY,EAAE;gCACb,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,cAAc;6BACxB;yBACD;qBACD;iBACD;aACD,CAAC;YAEF,MAAM,GAAG,IAAI,eAAM,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC;YACT,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE;YACjC,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,EAAE;YAC5B,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE;YACxC,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,cAAM,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAjB,CAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE;YACxC,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,EAAE;YACzB,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC;YACrB,MAAM,CAAC,cAAM,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAjB,CAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE;YACnD,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE;YACtC,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YACtB,MAAM,CAAC,cAAM,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAjB,CAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mCAAmC,EAAE;YACvC,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YACjB,MAAM,CAAC,cAAM,OAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAjB,CAAiB,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE;QACpB,SAAS,CAAC;YACT,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE;YACpC,IAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YACpB,IAAM,WAAW,GAAG,IAAI,eAAM,CAC7B,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ;gBACC,gBAAgB,EAAE,IAAI;aACtB,CACD,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACxC,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,IAAI,CAAC,4CAA4C,EAAE;YAErD,IAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;YAC/B,OAAO,CAAC,IAAI,GAAG,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;YACtE,IAAM,WAAW,GAAG,IAAI,eAAM,CAC7B,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ;gBACC,gBAAgB,EAAE,IAAI;aACtB,CACD,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACxC,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var runtime_1 = require("@esgettext/runtime");
|
|
4
|
+
var install_1 = require("../install/install");
|
|
5
|
+
var getopt_1 = require("./getopt");
|
|
6
|
+
var gtx = runtime_1.Textdomain.getInstance('tools');
|
|
7
|
+
gtx.resolve().then(function () {
|
|
8
|
+
var optionGroups = [
|
|
9
|
+
{
|
|
10
|
+
description: gtx._('Input file options:'),
|
|
11
|
+
options: [
|
|
12
|
+
{
|
|
13
|
+
name: 'package-json',
|
|
14
|
+
yargsOptions: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
describe: gtx._("read package information from PACKAGE_JSON (or 'package.json' without an argument)"),
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: 'locale',
|
|
21
|
+
flags: {
|
|
22
|
+
multiple: true,
|
|
23
|
+
},
|
|
24
|
+
yargsOptions: {
|
|
25
|
+
alias: 'l',
|
|
26
|
+
type: 'array',
|
|
27
|
+
describe: gtx._("list of locales"),
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'directory',
|
|
32
|
+
yargsOptions: {
|
|
33
|
+
alias: 'D',
|
|
34
|
+
type: 'string',
|
|
35
|
+
describe: gtx._("search '.gmo' files in DIRECTORY"),
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'input-format',
|
|
40
|
+
yargsOptions: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
default: 'gmo',
|
|
43
|
+
describe: gtx._("input file type format"),
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
description: gtx._('Output file options:'),
|
|
50
|
+
options: [
|
|
51
|
+
{
|
|
52
|
+
name: 'output-directory',
|
|
53
|
+
yargsOptions: {
|
|
54
|
+
type: 'string',
|
|
55
|
+
default: 'assets/locale',
|
|
56
|
+
describe: gtx._("output directory"),
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'output-format',
|
|
61
|
+
yargsOptions: {
|
|
62
|
+
type: 'string',
|
|
63
|
+
default: 'json',
|
|
64
|
+
describe: gtx._("output file type format"),
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
var usage = gtx._('[OPTIONS] ref.pot');
|
|
71
|
+
var description = gtx._("Install translation catalogs.");
|
|
72
|
+
var getopt = new getopt_1.Getopt(usage, description, optionGroups, {
|
|
73
|
+
hasVerboseOption: true,
|
|
74
|
+
});
|
|
75
|
+
var install;
|
|
76
|
+
try {
|
|
77
|
+
install = new install_1.Install(getopt.argv());
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.warn(gtx._x('{programName}: {error}', {
|
|
81
|
+
error: error,
|
|
82
|
+
programName: getopt.programName,
|
|
83
|
+
}));
|
|
84
|
+
console.error(gtx._x('Try "{programName} --help" for more information!', {
|
|
85
|
+
programName: getopt.programName,
|
|
86
|
+
}));
|
|
87
|
+
process.exit(2);
|
|
88
|
+
}
|
|
89
|
+
install.run().then(function (exitCode) { return process.exit(exitCode); });
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|