UNPKG

bia

Version:

a tool for download git repository

233 lines (228 loc) 10.8 kB
/* * @Author: hzxulin@yeah.net * @Date: 2018-02-01 14:04:04 * @Last Modified by: hzxulin@yeah.net * @Last Modified time: 2018-12-05 15:55:12 */ const path = require('path') const utils = require('./utils') const question = require('./question') const IOS_CONFIG = require('../../config/ios.json') module.exports = (cmd, opts) => { switch (cmd) { case 'list': { // 列表相关 if (opts.config) { question.chooseConfigOperate().then(res => { switch (res) { case 'add': { // 添加配置信息 question.getUpdateConfig().then(res => { let iosConfList = [res].concat(IOS_CONFIG.list) let newIosConf = Object.assign({}, IOS_CONFIG, { list: iosConfList, }) return utils.updateConfig(newIosConf) }).then(() => { console.log('== 配置文件添加成功 ==') }).catch(err => { console.log(err) }) break } case 'update': { // 更新配置信息 let nameIndex = 0 utils.getConfigList().then(res => { return question.getConfigNameIndex(res) }).then(res => { nameIndex = res return question.getUpdateConfig(IOS_CONFIG.list[nameIndex]) }).then(res => { let iosConfList = IOS_CONFIG.list iosConfList.splice(nameIndex, 1, res) let newIosConf = Object.assign({}, IOS_CONFIG, { list: iosConfList, }) return utils.updateConfig(newIosConf) }).then(() => { console.log('== 配置文件更新成功 ==') }).catch(err => { console.log(err) }) break } case 'delete': { // 删除配置信息 let nameIndex = 0 utils.getConfigList().then(res => { return question.getConfigNameIndex(res) }).then(res => { nameIndex = res return utils.removeApp(IOS_CONFIG.list[nameIndex].boundId) }).then(() => { let iosConfList = IOS_CONFIG.list iosConfList.splice(nameIndex, 1) let newIosConf = Object.assign({}, IOS_CONFIG, { list: iosConfList, }) return utils.updateConfig(newIosConf) }).then(() => { console.log('== 配置文件更新成功 ==') }).catch(err => { console.log(err) }) break } case 'import': { // 导入配置 let dist = path.resolve(__dirname, '../../config/ios.json') question.chooseImportFile().then(res => { utils.moveFileToDist(res, dist).then(res => { console.log(`== 已成功导入 ${res} 文件 ==`) }).catch(err => { console.log(err) }) }) break } case 'export': { // 导出配置 let ori = path.resolve(__dirname, '../../config/ios.json') question.chooseOutputFile().then(res => { utils.moveFileToDist(ori, res).then(res => { console.log(`== 已成功导出 ${res} 文件 ==`) }).catch(err => { console.log(err) }) }) break } default: { break } } }) } else { utils.showConfigList().then(() => { console.log('== 信息输出完成,请查看 ==') }).catch(err => { console.log(err) }) } break } case 'default': default: { // 默认 simulator 功能 if (opts.start) { // 启动simulator utils.getIphoneList().then(res => { return question.chooseIphone(res) }).then(res => { return utils.startSimulator(res) }).then(res => { console.log(`== ${res} 正在启动中... ==`) }).catch(res => { console.log(`== ${res} 正在启动中... ==`) }) } else if (opts.install) { // 安装app let nameIndex = 0 // 存在-a 指定app的话,先查找list打开,不存在则使用list if (opts.app) { for (let i = 0; i < IOS_CONFIG.list.length; i++) { if (IOS_CONFIG.list[i].name == opts.app) { nameIndex = i utils.downloadApp(IOS_CONFIG.list[nameIndex].repoType, IOS_CONFIG.list[nameIndex].repoUrl).then(res => { return utils.installApp(res, IOS_CONFIG.list[nameIndex].packageName) }).then(() => { console.log(`== ${IOS_CONFIG.list[nameIndex].name} app安装完成 ==`) }).catch(err => { console.log(err) }) return false } } } // 读取配置文件安装app utils.getConfigList().then(res => { return question.getConfigNameIndex(res) }).then(res => { nameIndex = res return utils.downloadApp(IOS_CONFIG.list[nameIndex].repoType, IOS_CONFIG.list[nameIndex].repoUrl) }).then(res => { return utils.installApp(res, IOS_CONFIG.list[nameIndex].packageName) }).then(() => { console.log(`== ${IOS_CONFIG.list[nameIndex].name} app安装完成 ==`) }).catch(err => { console.log(err) }) } else if (opts.open) { // 打开app let nameIndex = 0 // 存在-a 指定app的话,先查找list打开,不存在则使用list if (opts.app) { for (let i = 0; i < IOS_CONFIG.list.length; i++) { if (IOS_CONFIG.list[i].name == opts.app) { nameIndex = i utils.openAppByBoundId(IOS_CONFIG.list[nameIndex].boundId).then(() => { console.log(`== ${IOS_CONFIG.list[nameIndex].name} app正在打开中 ==`) }).catch(err => { console.log(err) }) return false } } } // 读取配置文件打开app utils.getConfigList().then(res => { return question.getConfigNameIndex(res) }).then(res => { nameIndex = res return utils.openAppByBoundId(IOS_CONFIG.list[nameIndex].boundId) }).then(() => { console.log(`== ${IOS_CONFIG.list[nameIndex].name} app正在打开中 ==`) }).catch(err => { console.log(err) }) } else if (opts.url) { // 打开url let nameIndex = 0 // 存在-a 指定app的话,先查找list打开,不存在则使用list if (opts.app == 'sf' || opts.app == 'safari') { utils.openUrlByScheme(opts.url).then(() => { console.log('== url正在用 safari 打开中 ==') }).catch(err => { console.log(err) }) return false } else if (opts.app) { for (let i = 0; i < IOS_CONFIG.list.length; i++) { if (IOS_CONFIG.list[i].name == opts.app) { nameIndex = i utils.openUrlByScheme(opts.url, IOS_CONFIG.list[nameIndex].scheme).then(() => { console.log(`== ${IOS_CONFIG.list[nameIndex].name} url正在打开中 ==`) }).catch(err => { console.log(err) }) return false } } } // 读取配置文件打开url utils.getConfigList().then(res => { return question.getConfigNameIndex(res) }).then(res => { nameIndex = res return utils.openUrlByScheme(opts.url, IOS_CONFIG.list[nameIndex].scheme) }).then(() => { console.log(`== ${IOS_CONFIG.list[nameIndex].name} url正在打开中 ==`) }).catch(err => { console.log(err) }) } break } } }