-
Notifications
You must be signed in to change notification settings - Fork 4
/
sider-engine.js
78 lines (56 loc) · 1.83 KB
/
sider-engine.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// Now what?
// I want to:
// Be able to set settings on an engine
const commander = require('commander');
const engines = require('./engines');
const notFoundCommand = require('./not-found-command');
const configDb = require('./config-db');
const fileDb = require('./storage/file-db');
require('./global-error-handler');
let commandFound = false;
function getConfig(engineName) {
commandFound = true;
const storedConfig = engines.loadConfigJson(engineName);
configDb.printConfig(storedConfig);
}
function setConfig(engineName, configKeyValues) {
commandFound = true;
const storedConfig = engines.loadConfigJson(engineName);
const newSettings = configDb.mergeConfig(configKeyValues, storedConfig);
fileDb.setEngineConfig(engineName, newSettings);
}
function removeConfig(engineName, keys) {
commandFound = true;
const storedConfig = engines.loadConfigJson(engineName);
configDb.removeConfig(keys, storedConfig);
fileDb.setEngineConfig(engineName, storedConfig);
}
const { engine } = require('./completions.js');
function setupCommanderArguments() {
commander
.command(engine.getconf.commanderLine)
.description('lists stored and default config on an engine')
.action(getConfig);
commander
.command(engine.setconf.commanderLine)
.description('sets config(s) on an engine')
.action(setConfig);
commander
.command(engine.remconf.commanderLine)
.description('removes config(s) on an engine')
.action(removeConfig);
commander
.name('sider engine')
.description('controls dbs')
.usage('<command> [arguments]');
}
setupCommanderArguments();
commander.parse(process.argv);
if (!commander.args.length) {
commander.help();
process.exit(1);
}
const knownSubCommands = Object.keys(engine);
if (!commandFound) {
notFoundCommand.printCommandHelp(knownSubCommands, commander);
}