forked from nodester/nodester-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
/
appdomain.js
92 lines (88 loc) · 2.95 KB
/
appdomain.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
79
80
81
82
83
84
85
86
87
88
89
90
91
var node = require('nodester-api').nodester,
config = require('./config'),
log = require('./log');
module.exports = {
usage: function() {
log.usage('In a configured app dir, <appname> is optional');
log.usage('appdomain add <appname> <domainname> - Add a domain router for this app');
log.usage('appdomain remove <appname> <domainname> - Remove a domain router from this app');
log.usage('appdomain - List domains');
},
add: function(args) {
config.check();
var appname = config.appname,
domain;
if (args.length) {
if (args.length === 2) {
domain = args[1];
appname = args[0];
} else {
domain = args[0];
}
}
if (!domain) {
log.error('<domainname> required');
} else if (!appname) {
log.error('<appname> name required');
}
log.info('adding domain', domain, 'to', appname);
var nodeapi = new node(config.username, config.password, config.apihost, config.apisecure);
nodeapi.appdomain_add(appname, domain, function (err, data) {
if (err) {
log.error(err.message);
}
if (data.status == 'success') {
log.info(data.message);
} else {
log.warn(data);
}
});
},
delete: function(args) {
config.check();
var appname = config.appname,
domain;
if (args.length) {
if (args.length === 2) {
domain = args[1];
appname = args[0];
} else {
domain = args[0];
}
}
if (!domain) {
log.error('<domainname> required');
} else if (!appname) {
log.error('<appname> name required');
}
log.info('removing domain', domain, 'from', appname);
var nodeapi = new node(config.username, config.password, config.apihost, config.apisecure);
nodeapi.appdomain_delete(appname, domain, function (err, data) {
if (err) {
log.error(err.message);
}
if (data.status == 'success') {
log.info(data.message);
} else {
log.warn(data);
}
});
},
run: function() {
config.check();
log.info('fetching your list of domain aliases');
var nodeapi = new node(config.username, config.password, config.apihost, config.apisecure);
nodeapi.appdomains(function (err, data) {
if (err) {
log.error(err);
}
if (data.length > 0) {
data.forEach(function(i) {
log.info(i.domain.white, 'aliased to app', i.appname.white, 'running on port', i.port);
});
} else {
log.warn('no app domains to report');
}
});
}
}