刮刮前端
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.
 
 
 
 

32 lines
1.0 KiB

const fs = require('fs')
const path = require('path')
const uniI18n = require('@dcloudio/uni-cli-i18n')
const migraters = {
'mp-weixin': require('./mp-weixin')
}
module.exports = function validate (input, out, options) {
if (!fs.existsSync(input)) {
return console.error(uniI18n.__('migration.errorInputNotExists', { 0: input }))
}
Object.assign(options, migraters[options.platform].options)
const templateExtname = options.extname.template
const stat = fs.lstatSync(input)
if (stat.isFile()) {
if (path.extname(input) !== templateExtname) {
return console.error(uniI18n.__('migration.errorConvertRequireFileUrl', { 0: templateExtname.substr(1) }))
}
options.target = 'file'
} else if (stat.isDirectory()) {
options.base = input
if (fs.existsSync(path.resolve(input, 'app.json'))) {
options.target = 'app'
} else {
options.target = 'folder'
}
} else {
return console.error(uniI18n.__('migration.errorCannotConvert', { 0: input }))
}
return true
}