text: const uniI18n = require('@dcloudio/uni-cli-i18n')
  
  function isPlainObject (a) {
    if (a === null) {
      return false
    }
    return typeof a === 'object'
  }
  
  module.exports = {
    initCustomScript (name, pkgPath) {
      const pkg = require(pkgPath)
      const uniAppOptions = pkg['uni-app']
  
      let scriptOptions = false
  
      if (uniAppOptions && uniAppOptions.scripts) {
        scriptOptions = uniAppOptions.scripts[name]
      }
  
      if (!scriptOptions) {
        console.error(`package.json->uni-app->scripts->${name} ${uniI18n.__('cliShared.doesNotExist')}`)
        process.exit(0)
      }
  
      if (!scriptOptions.env || !scriptOptions.env.UNI_PLATFORM) {
        console.error(uniI18n.__('cliShared.requireConfigUniPlatform', {
          0: `package.json->uni-app->scripts->${name}->env `
        }))
        process.exit(0)
      }
  
      if (isPlainObject(scriptOptions.define)) {
        Object.keys(uniAppOptions.scripts).forEach(scriptName => {
          if (scriptName !== name) {
            const define = uniAppOptions.scripts[scriptName].define
            Object.keys(define).forEach(name => {
              if (typeof scriptOptions.define[name] !== 'undefined') {
                delete define[name]
              } else {
                define[name] = false
              }
            })
            Object.assign(scriptOptions.define, define)
          }
        })
      }
  
      process.env.UNI_PLATFORM = scriptOptions.env.UNI_PLATFORM
  
      process.env.UNI_SCRIPT = name
      process.UNI_SCRIPT_ENV = scriptOptions.env || {}
      process.UNI_SCRIPT_DEFINE = scriptOptions.define || {}
  
      return scriptOptions
    }
  }
  