forked from SamVerschueren/cordova-config
-
Notifications
You must be signed in to change notification settings - Fork 2
/
cli.js
57 lines (50 loc) · 1.56 KB
/
cli.js
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
#!/usr/bin/env node
'use strict';
const meow = require('meow');
const CordovaConfig = require('.');
const cli = meow(`
Usage
$ cordova-config <actions> <config> <value> <options>
Examples
$ cordova-config set name "New Name"
$ cordova-config set name "New Name" --config=../config.xml
$ cordova-config add hook after_prepare script/after_prepare.js --config=../config.xml
$ cordova-config rm access-origin "*" --config=../fixtures/config.xml
Actions and config
set: name desc author version android-version ios-version
add: preference access-origin xml hook
rm: access-origin
Values
See 'cordova-config' to find value signature of the method
Options
--config: path of config.xml if not set? use a current path for reading
`);
const COMMANDS = {
'set-name': 'setName',
'set-desc': 'setDescription',
'set-author': 'setAuthor',
'set-version': 'setVersion',
'set-android-version': 'setAndroidVersionCode',
'set-ios-version': 'setIOSBundleVersion',
'add-preference': 'setPreference',
'add-access-origin': 'setAccessOrigin',
'rm-access-origin': 'removeAccessOrigin',
'add-xml': 'addRawXML',
'set-id': 'setID',
'add-hook': 'addHook'
};
try {
const config = new CordovaConfig(cli.flags.config || './config.xml');
const command = config[COMMANDS[cli.input.shift() + '-' + cli.input.shift()]];
const args = cli.input;
if (!command) {
throw new Error('Unknown command');
}
// Apply value to config
command.apply(config, args);
// Write config.xml
config.writeSync();
} catch (error) {
console.error(error);
cli.showHelp(-1);
}