forked from tiagoporto/svg-music-logos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
100 lines (90 loc) · 2.69 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
89
90
91
92
93
94
95
96
97
98
99
100
const config = require('./config.json')
const path = require('path')
const gulp = require('gulp')
const replace = require('gulp-replace')
const stylus = require('gulp-stylus')
const del = require('del')
var jsonConcat = require('gulp-concat-jsons')
var jsonminify = require('gulp-jsonminify')
var gulpIgnore = require('gulp-ignore')
// const file = require('gulp-file')
// const mergeMediaQueries = require('gulp-merge-media-queries')
// const newer = require('gulp-newer')
// const plumber = require('gulp-plumber')
// const rename = require('gulp-rename')
// const autoprefixer = require('gulp-autoprefixer')
const paths = config.basePaths
// return streaming(
// )
/** newer({
dest: path.join(paths.src, 'logos'),
ext: '.css',
extra: paths.styles.src
}) */
const styles = () => {
return gulp
.src(paths.public + 'logos/**/*.styl')
.pipe(
stylus({
include: ['node_modules'],
'include css': true,
})
)
.pipe(gulp.dest(paths.public + 'logos'))
}
const updateReadme = () => {
const data = require('./src/data.js')
return gulp
.src('./README.md')
.pipe(
replace(
/<!-- replace start -->[\W\w]+<!-- replace end -->/,
// prettier-ignore
`<!-- replace start -->
![Total Artists](https://img.shields.io/badge/artists-${data.artists.length}-blue.svg?style=flat-square)
![Total Logos](https://img.shields.io/badge/logos-${data.logos.length}-blue.svg?style=flat-square)
![Total Origins](https://img.shields.io/badge/origins-${data.origins.length}-blue.svg?style=flat-square)
![Total Genres](https://img.shields.io/badge/genres-${data.genres.length}-blue.svg?style=flat-square)
<!-- replace end -->`
)
)
.pipe(gulp.dest('./'))
}
const generateData = () => {
return gulp
.src(paths.public + 'logos/**/*.json')
.pipe(jsonConcat('data.json'))
.pipe(gulpIgnore('!data.json'))
.pipe(jsonminify())
.pipe(gulp.dest(paths.src))
}
const copy = () => {
return gulp
.src(
[
path.join(paths.public, '**/*.*'),
path.join(`!${(paths.public, '**/*.html')}`),
],
{
base: `./${paths.public}`,
}
)
.pipe(gulp.dest(paths.dist))
}
const clean = () => del(paths.dist)
const watch = () => {
gulp.watch(paths.public + 'logos/**/*.styl', styles)
gulp.watch(paths.public + 'logos/**/*.json', generateData)
}
const build = gulp.series(
clean,
gulp.parallel(generateData, styles, copy, updateReadme)
)
// ***************************** Tasks ******************************* //
exports['update-readme'] = updateReadme
exports.styles = styles
exports.clean = clean
exports.watch = watch
exports.copy = copy
exports['generate-data'] = generateData
exports.build = build