You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.2 KiB
48 lines
1.2 KiB
import cp from 'child_process'
|
|
import fs from 'fs'
|
|
import path from 'path'
|
|
import { getArgvs, getPackageJson, ICONS_SRC_DIR } from './helpers.mjs'
|
|
|
|
const p = getPackageJson()
|
|
|
|
const argv = getArgvs(),
|
|
version = argv['latest-version'] || `${p.version}`,
|
|
newVersion = argv['new-version'] || `${p.version}`
|
|
|
|
const setVersions = function(version, files) {
|
|
for (const i in files) {
|
|
const file = files[i],
|
|
filePath = path.join(ICONS_SRC_DIR, `${file}.svg`)
|
|
|
|
if (fs.existsSync(filePath)) {
|
|
let svgFile = fs.readFileSync(filePath).toString()
|
|
|
|
if (!svgFile.match(/version: ([0-9.]+)/i)) {
|
|
svgFile = svgFile.replace(/---\n<svg>/i, function(m) {
|
|
return `version: "${version}"\n${m}`
|
|
})
|
|
|
|
fs.writeFileSync(filePath, svgFile)
|
|
} else {
|
|
console.log(`File ${file} already has version`)
|
|
}
|
|
|
|
} else {
|
|
console.log(`File ${file} doesn't exists`)
|
|
}
|
|
}
|
|
}
|
|
|
|
if (version) {
|
|
cp.exec(`grep -RiL "version: " ${ICONS_SRC_DIR}/*.svg`, function(err, ret) {
|
|
let newIcons = []
|
|
|
|
ret.replace(/src\/_icons\/([a-z0-9-]+)\.svg/g, function(m, fileName) {
|
|
newIcons.push(fileName)
|
|
})
|
|
|
|
if (newIcons.length) {
|
|
setVersions(newVersion.replace(/\.0$/, ''), newIcons)
|
|
}
|
|
})
|
|
}
|