diff options
author | codecalm <codecalm@gmail.com> | 2020-09-27 01:27:04 +0200 |
---|---|---|
committer | codecalm <codecalm@gmail.com> | 2020-09-27 01:27:04 +0200 |
commit | 3ee5a83bf0f802c1816f2b94fdb174278b484018 (patch) | |
tree | ecfeebda1b590aa016dcd0ec637d1e28e852fc62 /gulpfile.js | |
parent | Release 1.28.0 (diff) | |
download | tabler-icons-3ee5a83bf0f802c1816f2b94fdb174278b484018.tar.xz |
Update icons version
Diffstat (limited to 'gulpfile.js')
-rw-r--r-- | gulpfile.js | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/gulpfile.js b/gulpfile.js index 892981bc..f7826fa1 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -604,4 +604,50 @@ gulp.task('svg-to-react', gulp.series('clean-react', async function (cb) { cb(); })); -gulp.task('build', gulp.series('optimize', 'build-jekyll', 'build-copy', 'icons-sprite', 'svg-to-react', 'icons-preview', 'svg-to-png', 'build-iconfont', 'changelog-image', 'build-zip')); +const setVersions = function(version, files) { + for(const i in files) { + const file = files[i]; + + if (fs.existsSync(`src/_icons/${file}.svg`)) { + let svgFile = fs.readFileSync(`src/_icons/${file}.svg`).toString(); + + if(!svgFile.match(/version: ([0-9.]+)/i)) { + svgFile = svgFile.replace(/---\n<svg>/i, function(m){ + return `version: ${version}\n${m}`; + }); + + fs.writeFileSync(`src/_icons/${file}.svg`, svgFile); + } else { + console.log(`File ${file} already has version`); + } + + } else { + console.log(`File ${file} doesn't exists`); + } + } +}; + +gulp.task('update-icons-version', function (cb) { + + const version = argv['latest-version'] || `${p.version}`, + newVersion = argv['new-version'] || `${p.version}`; + + if (version) { + cp.exec(`git diff v${version} HEAD --name-status`, function (err, ret) { + + let newIcons = []; + + ret.replace(/[A]\s+src\/_icons\/([a-z0-9-]+)\.svg/g, function (m, fileName) { + newIcons.push(fileName); + }); + + if(newIcons.length) { + setVersions(newVersion.replace(/\.0$/, ''), newIcons); + } + }); + } + + cb(); +}); + +gulp.task('build', gulp.series('optimize', 'update-icons-version', 'build-jekyll', 'build-copy', 'icons-sprite', 'svg-to-react', 'icons-preview', 'svg-to-png', 'build-iconfont', 'changelog-image', 'build-zip')); |