-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathindex.js
80 lines (70 loc) · 1.98 KB
/
index.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
'use strict';
var configBuilder = require('openfin-config-builder'),
openfinLauncher = require('openfin-launcher'),
path = require('path'),
fs = require('fs');
function main(str, flags) {
var name = flags.n || flags.name,
url = flags.u || flags.url,
config = flags.c || flags.config || 'config.json',
launch = flags.l || flags.launch;
if (isEmpty(flags)) {
console.log('please see options: openfin --help');
return;
}
writeToConfig(name, url, config, function() {
if (launch) {
launchOpenfin(config);
}
});
}
//makeshift is object empty function
function isEmpty(flags) {
for (var key in flags) {
if (flags.hasOwnProperty(key)) {
return false;
}
}
return true;
}
//will launch download the rvm and launch openfin
function launchOpenfin(config) {
openfinLauncher.launchOpenFin({
configPath: path.resolve(config)
}).fail(function(err) {
console.log('launch failed', err);
});
}
//write the specified config to disk.
function writeToConfig(name, url, config, callback) {
var startup_app = {},
configAction,
actionMessage;
fs.exists(config, function(exists) {
if (exists) {
configAction = configBuilder.update;
actionMessage = 'using config';
} else {
configAction = configBuilder.create;
actionMessage = 'successfully created config';
}
if (config) {
if (name) {
startup_app.name = name;
}
if (url) {
startup_app.url = url;
}
}
//create or update the config
configAction({
startup_app: startup_app
}, config).fail(function(err) {
console.log(err);
}).done(function() {
console.log(actionMessage, path.resolve(config));
callback();
});
});
}
module.exports = main;