forked from seiyria/gameicons-font
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgulpfile.js
68 lines (58 loc) · 2.08 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
const fs = require('fs');
const path = require('path');
const minimatch = require('minimatch');
const gulp = require('gulp');
const unzip = require('gulp-unzip');
const filter = require('gulp-filter');
const rename = require('gulp-rename');
const download = require('gulp-download');
const iconfont = require('gulp-iconfont');
const iconfontCss = require('gulp-iconfont-css');
const ghPages = require('gulp-gh-pages');
const BASE_URL = 'http://game-icons.net/archives/svg/zip/000000/transparent/game-icons.net.svg.zip';
const FONT_NAME = 'game-icons';
const ONLY_ICONS = require('./.icon-map');
gulp.task('build:font', () => {
const fileCounts = {};
const includePaths = {};
return download(BASE_URL)
.pipe(unzip({
filter: (entry) => minimatch(entry.path, '**/*.svg')
}))
.pipe(rename(filePath => {
if(fileCounts[filePath.basename]) {
fileCounts[filePath.basename] += 1;
filePath.basename = `${filePath.basename}-${fileCounts[filePath.basename]}`;
} else {
fileCounts[filePath.basename] = 1;
}
if(ONLY_ICONS[filePath.basename]) {
filePath.basename = ONLY_ICONS[filePath.basename];
includePaths[`${filePath.dirname}/${filePath.basename}${filePath.extname}`] = true;
}
return filePath;
}))
.pipe(filter(filePath => {
const pathData = path.parse(filePath.path);
return includePaths[`${pathData.dir}/${pathData.base}`];
}))
.pipe(iconfontCss({
fontName: FONT_NAME,
formats: ['ttf', 'eot', 'woff'],
targetPath: 'game-icons.css',
cssClass: 'game-icon'
}))
.pipe(iconfont({
fontName: FONT_NAME,
normalize: true
}))
.on('glyphs', (glyphs) => {
fs.writeFile('./test/data/glyphs.json', JSON.stringify(glyphs));
})
.pipe(gulp.dest('dist/'))
.pipe(gulp.dest('test/css/'));
});
gulp.task('deploy', () => {
return gulp.src('./test/**/*')
.pipe(ghPages());
});