-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.coffee
80 lines (71 loc) · 1.78 KB
/
gulpfile.coffee
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
browserSync = require 'browser-sync'
buildSite = require './src/_scripts/build-site'
del = require 'del'
deploy = require './src/_scripts/deploy'
getData = require './src/_scripts/get-data'
getFiles = require './src/_scripts/get-files'
gulp = require 'gulp'
gutil = require 'gulp-util'
moment = require 'moment'
gulp.task 'build', (done) ->
run = require 'run-sequence'
run.apply run, [
'clean'
'build-data'
'build-site'
'copy-files'
done
]
gulp.task 'build-data', ->
getData()
.then (site) ->
fs = require 'fs'
dir = './.tmp/'
file = dir + 'site.json'
data = JSON.stringify(site)
fs.mkdirSync(dir) unless fs.existsSync dir
fs.writeFileSync file, data, encoding: 'utf-8'
gulp.task 'build-site', ->
site = require './.tmp/site.json'
buildSite site
gulp.task 'clean', (done) ->
del [
'./.tmp'
'./public'
], done
gulp.task 'copy-files', ->
srcDir = './src'
files = getFiles srcDir
gulp.src files, base: srcDir
.pipe gulp.dest './public'
gulp.task 'default', (done) ->
run = require 'run-sequence'
run.apply run, [
'clean'
'build'
done
]
gulp.task 'deploy', ['clean'], ->
message = moment().format() # commit message
url = '[email protected]:codeforkobe/sakura360.git' # repository url
dst = 'gh-pages'
dir = './public'
name = 'circleci'
email = '[email protected]'
build = ->
{Promise} = require 'es6-promise'
new Promise (resolve) ->
run = require 'run-sequence'
run.apply run, [
'clean'
'build-data'
'build-site'
'copy-files'
resolve
]
deploy { message, url, dst, dir, name, email, build }
gulp.task 'watch', ['build'], ->
browserSync
server:
baseDir: './public/'
gulp.watch './src/**/*', ['build-site', browserSync.reload]