1
1
var gulp = require ( 'gulp' ) ;
2
2
var fs = require ( 'fs' ) ;
3
3
var path = require ( 'path' ) ;
4
- var run = require ( 'run-sequence' ) ;
5
4
var merge = require ( 'merge-stream' ) ;
6
5
var del = require ( 'del' ) ;
7
6
var exec = require ( 'child_process' ) . exec ;
@@ -39,7 +38,7 @@ function getCommentHandler() {
39
38
}
40
39
}
41
40
42
- gulp . task ( 'icons' , function ( ) {
41
+ gulp . task ( 'icons' , function ( cb ) {
43
42
var used = [
44
43
'alert' , 'arrow-right' , 'code' , 'diff' , 'git-commit' , 'git-pull-request' ,
45
44
'info' , 'issue-closed' , 'issue-opened' , 'link' , 'location' , 'organization' ,
@@ -62,6 +61,7 @@ gulp.task('icons', function () {
62
61
} , { } ) ;
63
62
64
63
fs . writeFileSync ( './assets/octicons.json' , JSON . stringify ( data , null , ' ' ) ) ;
64
+ cb ( ) ;
65
65
} ) ;
66
66
67
67
gulp . task ( 'css:prepare' , function ( ) {
@@ -78,24 +78,16 @@ gulp.task('css:compile', function () {
78
78
. pipe ( gulp . dest ( './src' ) ) ;
79
79
} ) ;
80
80
81
- gulp . task ( 'css' , [ 'css:prepare' , 'css:compile' ] ) ;
81
+ gulp . task ( 'css' , gulp . series ( 'css:prepare' , 'css:compile' ) ) ;
82
82
83
- gulp . task ( 'resource:inline' , [ 'icons' ] , function ( ) {
83
+ gulp . task ( 'resource:inline' , gulp . series ( 'icons' , function ( ) {
84
84
return gulp . src ( './src/hovercard.js' )
85
85
. pipe ( replace ( '\'__OCTICONS__\'' , JSON . stringify ( require ( './assets/octicons.json' ) ) ) )
86
86
. pipe ( replace ( '\'__EMOJI_DATA__\'' , JSON . stringify ( require ( './assets/emoji.json' ) ) ) )
87
87
. pipe ( gulp . dest ( './tmp' ) ) ;
88
- } ) ;
89
-
90
- // gulp.task('firefox:resource', function () {
91
- // return gulp.src('./src/hovercard.js')
92
- // .pipe(replace('\'__OCTICONS__\'', 'self.options.octicons'))
93
- // .pipe(replace('\'__EMOJI_DATA__\'', 'self.options.emojiMap'))
94
- // .pipe(rename('hovercard.firefox.js'))
95
- // .pipe(gulp.dest('./tmp'));
96
- // });
88
+ } ) ) ;
97
89
98
- gulp . task ( 'userscript:prepare' , [ 'resource:inline' ] , function ( ) {
90
+ gulp . task ( 'userscript:prepare' , gulp . series ( 'resource:inline' , function ( ) {
99
91
var hovercard = gulp . src ( './tmp/hovercard.js' )
100
92
. pipe ( buble ( {
101
93
transforms : {
@@ -108,9 +100,9 @@ gulp.task('userscript:prepare', ['resource:inline'], function () {
108
100
. pipe ( replace ( '{{version}}' , version ) )
109
101
. pipe ( gulp . dest ( './tmp' ) ) ;
110
102
return merge ( hovercard , meta ) ;
111
- } ) ;
103
+ } ) ) ;
112
104
113
- gulp . task ( 'userscript:styles' , [ 'css' ] , function ( ) {
105
+ gulp . task ( 'userscript:styles' , gulp . series ( 'css' , function ( ) {
114
106
return gulp . src ( [
115
107
'./tmp/tooltipster.css' ,
116
108
'./src/hovercard.css' ,
@@ -119,16 +111,15 @@ gulp.task('userscript:styles', ['css'], function () {
119
111
. pipe ( concat ( 'userscript.css' ) )
120
112
. pipe ( cssnano ( { zindex : false } ) )
121
113
. pipe ( gulp . dest ( './tmp' ) ) ;
122
- } ) ;
114
+ } ) ) ;
123
115
124
- gulp . task ( 'userscript:inject-styles' , [ 'userscript:styles' ] , function ( ) {
116
+ gulp . task ( 'userscript:inject-styles' , gulp . series ( 'userscript:styles' , function ( ) {
125
117
return gulp . src ( './userscript/src/inject-styles.js' )
126
118
. pipe ( replace ( '__USER_SCRIPT_STYLES__' , fs . readFileSync ( './tmp/userscript.css' , { encoding : 'utf8' } ) . replace ( / ' / g, '\\\'' ) ) )
127
119
. pipe ( gulp . dest ( './tmp' ) ) ;
128
- } ) ;
120
+ } ) ) ;
129
121
130
- gulp . task ( 'userscript' , [ 'userscript:inject-styles' , 'userscript:prepare' ] , function ( ) {
131
- var inMetaBlock = false ;
122
+ gulp . task ( 'userscript' , gulp . series ( 'userscript:inject-styles' , 'userscript:prepare' , function ( ) {
132
123
return gulp . src ( [
133
124
'./tmp/metadata.js' ,
134
125
'./tmp/inject-styles.js' ,
@@ -143,9 +134,9 @@ gulp.task('userscript', ['userscript:inject-styles', 'userscript:prepare'], func
143
134
preserveComments : getCommentHandler ( )
144
135
} ) )
145
136
. pipe ( gulp . dest ( './userscript/dist' ) ) ;
146
- } ) ;
137
+ } ) ) ;
147
138
148
- gulp . task ( 'chrome:cp' , [ 'resource:inline' , 'css' , 'icons' ] , function ( ) {
139
+ gulp . task ( 'chrome:cp' , gulp . series ( 'resource:inline' , 'css' , 'icons' , function ( ) {
149
140
var manifestPath = './extensions/chrome/manifest.json' ;
150
141
var manifest = JSON . parse ( fs . readFileSync ( manifestPath , { encoding : 'utf8' } ) ) ;
151
142
manifest . version = version ;
@@ -157,9 +148,9 @@ gulp.task('chrome:cp', ['resource:inline', 'css', 'icons'], function () {
157
148
] ;
158
149
return gulp . src ( targets )
159
150
. pipe ( gulp . dest ( './extensions/chrome' ) ) ;
160
- } ) ;
151
+ } ) ) ;
161
152
162
- gulp . task ( 'firefox:cp' , [ 'resource:inline' , 'css' , 'icons' ] , function ( ) {
153
+ gulp . task ( 'firefox:cp' , gulp . series ( 'resource:inline' , 'css' , 'icons' , function ( ) {
163
154
var manifestPath = './extensions/firefox/manifest.json' ;
164
155
var manifest = JSON . parse ( fs . readFileSync ( manifestPath , { encoding : 'utf8' } ) ) ;
165
156
manifest . version = version ;
@@ -171,9 +162,9 @@ gulp.task('firefox:cp', ['resource:inline', 'css', 'icons'], function () {
171
162
] ;
172
163
return gulp . src ( targets )
173
164
. pipe ( gulp . dest ( './extensions/firefox' ) ) ;
174
- } ) ;
165
+ } ) ) ;
175
166
176
- gulp . task ( 'safari:cp' , [ 'resource:inline' , 'css' , 'icons' ] , function ( ) {
167
+ gulp . task ( 'safari:cp' , gulp . series ( 'resource:inline' , 'css' , 'icons' , function ( ) {
177
168
var infoPath = './extensions/github-hovercard.safariextension/Info.plist' ;
178
169
var info = plist . parse ( fs . readFileSync ( infoPath , { encoding : 'utf8' } ) ) ;
179
170
info . CFBundleShortVersionString = version ;
@@ -186,15 +177,15 @@ gulp.task('safari:cp', ['resource:inline', 'css', 'icons'], function () {
186
177
] ;
187
178
return gulp . src ( targets )
188
179
. pipe ( gulp . dest ( './extensions/github-hovercard.safariextension' ) ) ;
189
- } ) ;
180
+ } ) ) ;
190
181
191
- gulp . task ( 'edge:hack' , [ 'resource:inline' ] , function ( ) {
182
+ gulp . task ( 'edge:hack' , gulp . series ( 'resource:inline' , function ( ) {
192
183
return gulp . src ( [ './tmp/hovercard.js' ] )
193
184
. pipe ( replace ( '$(() => {' , 'document.addEventListener(\'DOMContentLoaded\', () => {' ) )
194
185
. pipe ( gulp . dest ( './extensions/edge' ) ) ;
195
- } ) ;
186
+ } ) ) ;
196
187
197
- gulp . task ( 'edge:cp' , [ 'edge:hack' , 'css' , 'icons' ] , function ( ) {
188
+ gulp . task ( 'edge:cp' , gulp . series ( 'edge:hack' , 'css' , 'icons' , function ( ) {
198
189
var manifestPath = './extensions/edge/manifest.json' ;
199
190
var manifest = JSON . parse ( fs . readFileSync ( manifestPath , { encoding : 'utf8' } ) ) ;
200
191
manifest . version = version ;
@@ -206,91 +197,57 @@ gulp.task('edge:cp', ['edge:hack', 'css', 'icons'], function () {
206
197
] ;
207
198
return gulp . src ( targets )
208
199
. pipe ( gulp . dest ( './extensions/edge' ) ) ;
209
- } ) ;
200
+ } ) ) ;
210
201
211
- // gulp.task('firefox:cp', ['firefox:resource', 'css', 'icons'], function () {
212
- // var fxPackPath = './extensions/firefox/package.json';
213
- // var fxPack = JSON.parse(fs.readFileSync(fxPackPath, { encoding: 'utf8' }));
214
- // fxPack.version = version;
215
- // fs.writeFileSync(fxPackPath, JSON.stringify(fxPack, null, ' '));
216
-
217
- // var targets = [
218
- // './src/*', '!./src/hovercard.js', '!./src/*.styl',
219
- // '!./src/tooltipster.css', './tmp/tooltipster.css'
220
- // ];
221
- // var main = gulp.src(['./tmp/hovercard.firefox.js'])
222
- // .pipe(rename('hovercard.js'))
223
- // .pipe(gulp.dest('./extensions/firefox/data'));
224
- // var src = gulp.src(targets.concat([
225
- // './assets/emoji.json', './assets/octicons.json'
226
- // ]))
227
- // .pipe(gulp.dest('./extensions/firefox/data'));
228
- // var icon = gulp.src('./icon.png')
229
- // .pipe(gulp.dest('./extensions/firefox'))
230
- // return merge(main, src, icon);
231
- // });
232
-
233
- gulp . task ( 'chrome:zip' , [ 'chrome:cp' ] , function ( cb ) {
202
+ gulp . task ( 'chrome:zip' , gulp . series ( 'chrome:cp' , function ( cb ) {
234
203
exec (
235
204
'find . -path \'*/.*\' -prune -o -type f -print | zip ../packed/github-hovercard.chrome.zip -@' ,
236
205
{ cwd : 'extensions/chrome' } ,
237
- function ( error , stdout , stderr ) {
206
+ function ( error ) {
238
207
if ( error ) {
239
208
return cb ( error ) ;
240
209
} else {
241
210
cb ( ) ;
242
211
}
243
212
}
244
213
) ;
245
- } ) ;
214
+ } ) ) ;
246
215
247
- gulp . task ( 'firefox:zip' , [ 'firefox:cp' ] , function ( cb ) {
216
+ gulp . task ( 'firefox:zip' , gulp . series ( 'firefox:cp' , function ( cb ) {
248
217
exec (
249
218
'find . -path \'*/.*\' -prune -o -type f -print | zip ../packed/github-hovercard.firefox.zip -@' ,
250
219
{ cwd : 'extensions/firefox' } ,
251
- function ( error , stdout , stderr ) {
220
+ function ( error ) {
252
221
if ( error ) {
253
222
return cb ( error ) ;
254
223
} else {
255
224
cb ( ) ;
256
225
}
257
226
}
258
227
) ;
259
- } ) ;
228
+ } ) ) ;
260
229
261
- gulp . task ( 'edge:zip' , [ 'edge:cp' ] , function ( cb ) {
230
+ gulp . task ( 'edge:zip' , gulp . series ( 'edge:cp' , function ( cb ) {
262
231
exec (
263
232
'find . -path \'*/.*\' -prune -o -type f -print | zip ../packed/github-hovercard.edge.zip -@' ,
264
233
{ cwd : 'extensions/edge' } ,
265
- function ( error , stdout , stderr ) {
234
+ function ( error ) {
266
235
if ( error ) {
267
236
return cb ( error ) ;
268
237
} else {
269
238
cb ( ) ;
270
239
}
271
240
}
272
241
) ;
273
- } ) ;
242
+ } ) ) ;
274
243
275
- // gulp.task('firefox:xpi', ['firefox:cp'], function (cb) {
276
- // exec('jpm xpi', {
277
- // cwd: 'extensions/firefox'
278
- // }, function (error, stdout, stderr) {
279
- // if (error) {
280
- // return cb(error);
281
- // }
282
- // fs.renameSync('./extensions/firefox/github-hovercard.xpi', './extensions/packed/github-hovercard.xpi');
283
- // cb();
284
- // });
285
- // });
286
-
287
- gulp . task ( 'opera:nex' , [ 'chrome:zip' ] , function ( cb ) {
244
+ gulp . task ( 'opera:nex' , gulp . series ( 'chrome:zip' , function ( cb ) {
288
245
exec ( ''
289
246
+ '"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"'
290
247
+ ' --pack-extension=' + path . join ( __dirname , 'extensions/chrome' )
291
248
+ ' --pack-extension-key=' + path . join ( process . env . HOME , '.ssh/chrome.pem' )
292
249
+ ' --disable-gpu' ,
293
- function ( error , stdout , stderr ) {
250
+ function ( error ) {
294
251
if ( error ) {
295
252
return cb ( error ) ;
296
253
} else {
@@ -299,9 +256,9 @@ gulp.task('opera:nex', ['chrome:zip'], function (cb) {
299
256
}
300
257
}
301
258
) ;
302
- } ) ;
259
+ } ) ) ;
303
260
304
- gulp . task ( 'demo:prepare' , [ 'resource:inline' ] , function ( ) {
261
+ gulp . task ( 'demo:prepare' , gulp . series ( 'resource:inline' , function ( ) {
305
262
var hovercard = gulp . src ( './tmp/hovercard.js' )
306
263
. pipe ( replace ( 'location.host' , '\'github.com\'' ) )
307
264
. pipe ( buble ( {
@@ -321,7 +278,7 @@ gulp.task('demo:prepare', ['resource:inline'], function () {
321
278
. pipe ( gulp . dest ( './tmp' ) ) ;
322
279
323
280
return merge ( hovercard , demo ) ;
324
- } ) ;
281
+ } ) ) ;
325
282
326
283
gulp . task ( 'demo:index' , function ( ) {
327
284
var changelog = fs . readFileSync ( './CHANGELOG.md' , { encoding : 'utf8' } ) ;
@@ -333,7 +290,7 @@ gulp.task('demo:index', function () {
333
290
. pipe ( gulp . dest ( '.' ) ) ;
334
291
} ) ;
335
292
336
- gulp . task ( 'demo' , [ 'css' , 'demo:prepare' , 'demo:index' ] , function ( ) {
293
+ gulp . task ( 'demo' , gulp . series ( 'css' , 'demo:prepare' , 'demo:index' , function ( ) {
337
294
var jsSrc = gulp . src ( [
338
295
'./src/jquery.js' ,
339
296
'./src/mustache.js' ,
@@ -359,14 +316,12 @@ gulp.task('demo', ['css', 'demo:prepare', 'demo:index'], function () {
359
316
. pipe ( gulp . dest ( './demo/dist' ) ) ;
360
317
361
318
return merge ( jsSrc , cssSrc ) ;
362
- } ) ;
319
+ } ) ) ;
363
320
364
- gulp . task ( 'cleanup' , function ( cb ) {
321
+ gulp . task ( 'cleanup' , function ( ) {
365
322
return del ( [ './tmp' ] ) ;
366
323
} ) ;
367
324
368
- gulp . task ( 'extensions' , [ 'chrome:zip' , 'firefox:zip' , 'edge:zip' , 'opera:nex' , 'safari:cp' ] ) ;
369
- gulp . task ( 'build' , [ 'extensions' , 'demo' , 'userscript' ] ) ;
370
- gulp . task ( 'default' , function ( cb ) {
371
- run ( 'build' , 'cleanup' , cb ) ;
372
- } ) ;
325
+ gulp . task ( 'extensions' , gulp . series ( 'chrome:zip' , 'firefox:zip' , 'edge:zip' , 'opera:nex' , 'safari:cp' ) ) ;
326
+ gulp . task ( 'build' , gulp . series ( 'extensions' , 'demo' , 'userscript' ) ) ;
327
+ gulp . task ( 'default' , gulp . series ( 'build' , 'cleanup' ) ) ;
0 commit comments