forked from dutchorka/Pluff
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy.js
More file actions
58 lines (50 loc) · 1.38 KB
/
deploy.js
File metadata and controls
58 lines (50 loc) · 1.38 KB
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
var ftp = require('vinyl-ftp');
var dotenv = require('dotenv');
var fs = require('vinyl-fs');
var spawn = require('child_process').spawn;
var inquirer = require('inquirer');
dotenv.load();
var question = {type: 'confirm', name: 'continue', message: 'Are you sure you want to deploy?'};
var USE_FTP = !!process.env.PLUFF_FTP_HOST;
var IS_TRAVIS = !!process.env.TRAVIS;
if(IS_TRAVIS)
{
uploadThatShit();
}
else
{
inquirer.prompt(question).then(function(answers) {
if (answers.continue) {
uploadThatShit();
} else {
process.exit(1);
}
});
}
function uploadThatShit() {
if (USE_FTP) {
return uploadWithFtp();
}
console.log('Uploading using rsync. Make sure you have this installed!');
return uploadWithRsync();
}
// Use FTP to deploy.
// TODO: I really don't want to use FTP as it's insecure.
function uploadWithFtp() {
var conn = ftp.create({
host: process.env.PLUFF_FTP_HOST,
user: process.env.PLUFF_FTP_USER,
password: process.env.PLUFF_FTP_PASSWORD,
parallel: 10,
secure: true,
log: console.log,
});
fs.src(['./dist/**'], {buffer: false})
.pipe(conn.dest(process.env.PLUFF_FTP_DIST));
}
function uploadWithRsync() {
if (!process.env.PLUFF_RSYNC_DEST) {
throw Error('PLUFF_RSYNC_DEST is not set as an environment variable!');
}
spawn('rsync', ['-rv', '--delete', 'dist', process.env.PLUFF_RSYNC_DEST], {stdio: 'inherit'});
}