| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #!/usr/local/bin/node
- const fs = require('fs')
- const path = require('path')
- if (process.argv.length < 3) {
- console.error('params error!')
- return;
- }
- let baseDir = path.resolve(process.argv[2])
- var force = process.argv.indexOf('-f') > -1
- console.log("force:", force)
- copyAssets(baseDir)
- console.log('done')
- function copyAssets(srcDir) {
- fs.readdirSync(srcDir).forEach(function (ele, index) {
- if (/\(\d\)/.test(ele)) {
- return
- }
- var subPath = path.resolve(srcDir, ele)
- var info = fs.statSync(subPath)
- if (!info.isDirectory()) {
- var src = path.resolve(srcDir, ele)
- var dstDir = path.resolve(__dirname, 'images')
- var baseName = path.basename(src)
- var fileName = baseName.replace(/@\dx/g, '')
- var execRes = /@(\dx)/.exec(baseName)
- var subDir = execRes ? execRes[1] : ''
- if ('1x' === subDir) {
- subDir = ''
- }
- if (subDir) {
- if (!fs.existsSync(path.resolve(dstDir, subDir))) {
- fs.mkdirSync(path.resolve(dstDir, subDir), { recursive: true })
- }
- }
- var dst = path.resolve(dstDir, subDir, fileName)
- if (force) {
- if (fs.existsSync(dst)) {
- fs.unlinkSync(dst)
- }
- }
- try {
- fs.copyFileSync(src, dst, fs.constants.COPYFILE_EXCL)
- console.log('\x1B[32m%s\x1B[39m', `${baseName}\t->\timages/${subDir ? (subDir + '/' + fileName) : fileName}`)
- } catch (e) {
- console.error('\x1B[90m%s\x1B[39m', `${src}\t->\t${dst}`)
- }
- }
- })
- }
|