Newer
Older
Lloyd Hilaiel
committed
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
#!/usr/bin/env node
var path = require('path'),
child_process = require('child_process');
/*
* A thin wrapper around awsbox that expects certain env
* vars and invokes awsbox for ya to deploy a VM.
*/
if (!process.env['AWS_ID'] || ! process.env['AWS_SECRET']) {
console.log("You haven't defined AWS_ID and AWS_SECRET in the environment");
console.log("Get these values from the amazon web console and try again.");
process.exit(1);
}
if (!process.env['ZERIGO_DNS_KEY'] && process.env['PERSONA_DEPLOY_DNS_KEY']) {
process.env['ZERIGO_DNS_KEY'] = process.env['PERSONA_DEPLOY_DNS_KEY'];
}
var cmd = path.join(__dirname, '..', 'node_modules', '.bin', 'awsbox');
cmd = path.relative(process.env['PWD'], cmd);
if (process.argv.length > 1 &&
process.argv[2] === 'create' ||
process.argv[2] === 'deploy')
{
var options = {};
if (process.argv.length > 3) options.n = process.argv[3];
if (process.env['PERSONA_SSL_PRIV'] || process.env['PERSONA_SSL_PUB']) {
options.p = process.env['PERSONA_SSL_PUB'];
options.s = process.env['PERSONA_SSL_PRIV'];
}
if (process.env['ZERIGO_DNS_KEY']) {
options.d = true;
// when we have a DNS key, we can set a hostname!
var scheme = (options.p ? 'https' : 'http') + '://';
if (process.env['PERSONA_DEPLOYMENT_HOSTNAME']) {
options.u = scheme + process.env['PERSONA_DEPLOYMENT_HOSTNAME'];
} else if (options.n) {
options.u = scheme + options.n + ".personatest.org";
}
} else {
console.log('WARNING: No DNS key defined in the environment! ' +
'I cannot set up DNS for you. We\'ll do this by IP.');
}
// pass through/override with user provided vars
for (var i = 3; i < process.argv.length; i++) {
var k = process.argv[i];
if (i + 1 < process.argv.length && k.length === 2 && k[0] === '-') {
options[k[1]] = process.argv[++i];
}
}
if (process.env['PERSONA_EPHEMERAL_CONFIG']) {
options.x = process.env['PERSONA_EPHEMERAL_CONFIG'];
}
cmd += " create --ssl=force";
Lloyd Hilaiel
committed
Object.keys(options).forEach(function(opt) {
cmd += " -" + opt;
cmd += typeof options[opt] === 'string' ? " " + options[opt] : "";
});
} else {
cmd += " " + process.argv.slice(2).join(' ');
}
console.log("awsbox cmd: " + cmd);
var cp = child_process.exec(cmd, function(err) {
if (err) process.exit(err.code);
else process.exit(0);
});
cp.stdout.pipe(process.stdout);
cp.stderr.pipe(process.stderr);