-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathGruntfile.js
118 lines (112 loc) · 2.77 KB
/
Gruntfile.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
var gruntConnectProxyUtils = require('grunt-connect-proxy/lib/utils');
var serveStatic = require('serve-static');
module.exports = function (grunt) {
require('load-grunt-tasks')(grunt);
grunt.registerTask("deploy", "Deploy to github pages.", function () {
var done = this.async();
grunt.util.spawn({
cmd: "git",
args: ["--no-pager", "log", "-n", "1", "--format=publish at commit %h", "HEAD", "htdocs"]
}, function (error, result, code) {
if (code === 0) {
grunt.util.spawn({
cmd: "../tools/git-pushdir/git-pushdir",
args: ["-m", result.stdout, "git@github.com:gotanda-pm/gotanda-pm.github.io.git"],
opts: { cwd: "htdocs" }
}, done);
}
else {
grunt.log.errorlns(error);
done();
}
});
});
grunt.initConfig({
pkg: grunt.file.readJSON("package.json"),
clean: ["htdocs/css/", "htdocs/js/"],
shell: {
riji: {
command: './riji.sh server'
},
publish: {
command: './riji.sh publish && git add htdocs && git commit -m "publish."'
}
},
compass: {
production: {
options: {
bundleExec: true,
config: "compass.rb",
environment: 'production'
}
},
development: {
options: {
bundleExec: true,
config: "compass.rb",
environment: "development"
}
}
},
uglify: {
options: {
compress: {
drop_console: true
}
},
js: {
files: {
"htdocs/js/app.js": [
"src/js/app.js"
]
}
}
},
connect: {
app: {
options: {
livereload: true,
port: 5000,
middleware: function (connect, options) {
return [
gruntConnectProxyUtils.proxyRequest,
serveStatic('htdocs')
];
}
}
},
proxies: [
{
context: [
"/",
"!/css/",
"!/img/",
"!/js/"
],
host: "localhost",
port: 3650
}
]
},
watch: {
options: {
livereload: true
},
scss: {
files: ['src/scss/**/*.scss'],
tasks: ['compass:development']
},
js: {
files: ['src/js/**/*.js'],
tasks: ['uglify:js']
}
}
});
grunt.registerTask("css", ["compass:production"]);
grunt.registerTask("js", ["uglify:js"]);
grunt.registerTask("build", ["css", "js"]);
grunt.registerTask("publish", ["shell:publish"]);
grunt.registerTask("server", ["configureProxies", "connect:app", "shell:riji", "watch"]);
grunt.registerTask("default", ["server"]);
grunt.task.run('notify_hooks');
};