-
Notifications
You must be signed in to change notification settings - Fork 28
/
commands.ts
77 lines (70 loc) · 2.83 KB
/
commands.ts
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
/**
*******************************************************
* *
* Copyright (C) Microsoft. All rights reserved. *
* *
*******************************************************
*/
/// <reference path="../../typings/node.d.ts" />
/// <reference path="../../typings/Q.d.ts" />
/// <reference path="../../typings/nconf.d.ts" />
/// <reference path="../../typings/remotebuild.d.ts" />
/// <reference path="../../typings/tacoUtils.d.ts" />
"use strict";
import Q = require ("q");
import Help = require ("./help");
import RemoteBuildConf = require ("./remoteBuildConf");
import resources = require ("../resources/resourceManager");
import server = require ("./server");
import utils = require ("taco-utils");
import Logger = utils.Logger;
class Commands {
public static tasks: { [key: string]: RemoteBuild.IRemoteBuildTask } = {
start: {
execute: function (config: RemoteBuildConf, cliArguments?: string[]): Q.Promise<any> {
return server.start(config);
}
},
test: {
execute: function (config: RemoteBuildConf, cliArguments: string[]): Q.Promise<any> {
return server.start(config).then(function (): Q.Promise<any> {
return server.test(config, cliArguments).finally(function (): void {
server.stop();
});
});
}
},
certificates: {
execute: function (config: RemoteBuildConf, cliArguments: string[]): Q.Promise<any> {
var subCommand: string = cliArguments[1];
switch (subCommand) {
case "generate":
return server.generateClientCert(config);
case "reset":
return server.resetServerCert(config);
default:
}
Logger.logError(resources.getString("UnknownCommand", subCommand));
var topic: string = "certificates";
var help: Help = new Help(config);
return help.run({ options: {}, original: [topic], remain: [topic] });
}
},
saveconfig: {
execute: function (config: RemoteBuildConf, cliArguments: string[]): Q.Promise<any> {
return server.saveConfig(config);
}
},
help: {
execute: function (config: RemoteBuildConf, cliArguments: string[]): Q.Promise<any> {
return Q.resolve<void>(null);
}
},
version: {
execute: function (config: RemoteBuildConf, cliArguments: string[]): Q.Promise<any> {
return Q.resolve<void>(null);
}
}
};
}
export = Commands;