aboutsummaryrefslogtreecommitdiff
path: root/gulpfile.js
diff options
context:
space:
mode:
authorcodecalm <codecalm@gmail.com>2020-09-27 01:27:04 +0200
committercodecalm <codecalm@gmail.com>2020-09-27 01:27:04 +0200
commit3ee5a83bf0f802c1816f2b94fdb174278b484018 (patch)
treeecfeebda1b590aa016dcd0ec637d1e28e852fc62 /gulpfile.js
parentRelease 1.28.0 (diff)
downloadtabler-icons-3ee5a83bf0f802c1816f2b94fdb174278b484018.tar.xz
Update icons version
Diffstat (limited to 'gulpfile.js')
-rw-r--r--gulpfile.js48
1 files changed, 47 insertions, 1 deletions
diff --git a/gulpfile.js b/gulpfile.js
index 892981b..f7826fa 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'));