-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
88 lines (79 loc) · 2.35 KB
/
gulpfile.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
var gulp = require('gulp')
var browserSync = require('browser-sync').create()
var browserify = require('gulp-browserify')
var nodemailer = require('nodemailer')
var smtpTransport = require('nodemailer-smtp-transport')
var fs = require('fs')
var parse = require('csv-parse')
var csv = require('fast-csv')
var BROWSER_SYNC_RELOAD_DELAY = 500
gulp.task('nodemon', ['scripts'], function (cb) {
var called = false
var nodemon = require('gulp-nodemon')
var recursiveReaddir = require('recursive-readdir')
recursiveReaddir('server', function (err, serverFiles) {
if (err) { throw new Error('failed to read server directory') }
recursiveReaddir('app', function (err, appFiles) {
if (err) { throw new Error('failed to read app directory') }
nodemon({
script: 'index.js',
watch: ['index.js'].concat(serverFiles).concat(appFiles)
}).on('start', function onStart () {
if (!called) { cb() }
called = true
}).on('restart', function onRestart () {
// reload connected browsers after a slight delay
setTimeout(function reload () {
browserSync.reload({
stream: false
})
}, BROWSER_SYNC_RELOAD_DELAY)
})
})
})
})
gulp.task('scripts', function() {
gulp.src('./app/index.js')
.pipe(browserify({
insertGlobals : true
}))
.on('prebundle', function(bundle) {
bundle.external('domready')
bundle.external('react')
})
.pipe(gulp.dest('./build/javascripts'))
})
gulp.task('send', function() {
var transport = nodemailer.createTransport(smtpTransport({
host: 'smtp-pulse.com',
port: '2525',
auth: {
user: process.env.SENDPULSE_USERNAME,
pass: process.env.SENDPULSE_PASSWORD
},
tls: {
rejectUnauthorized: false
}
}))
var stream = fs.createReadStream('./server/mail_db/*.csv')
var html = fs.readFileSync('./server/views/mail_templates/india_invite.html', 'utf-8')
csv
.fromStream(stream, {headers : true})
.on("data", function(data){
transport.sendMail({
from: process.env.SENDPULSE_USERNAME,
to: data.email,
subject: 'Hello',
html: html
}, function(err, info) {
if (err) {
console.error(err)
} else {
console.log(info)
}
})
})
.on("end", function(){
console.log('done')
})
})