const { execSync} = require('child_process'); const { getObjValue, arrIndex, isNullES } = require('js-fast-way') const fs = require('fs'); // 配置 const config = [ { name: 'test', //测试服 ip: '192.168.0.109', //服务器地址 username: 'root', //登录账号 password: 'admin123@', //登录密码 fileName: 'saber', //本地文件名 path: '/www/wwwroot/testmanger.hczcxx.cn', //服务器上的文件路径 url: 'http://192.168.0.109:1888/', //demo地址 }, { name: 'user', //正式服 ip: '39.108.216.210', //服务器地址 username: 'root', //登录账号 password: '%CX0&qPRk2BitWPH^tCa5jxZKPYuST', //登录密码 fileName: 'saber', //本地文件名 path: '/www/wwwroot/testmanger.hcxxy.com', //服务器上的文件路径 url: 'http://testmanger.hczcxx.cn', //demo地址 }, ]; const argv = process.argv[2] // 执行命令并打印输出 function runCommand(command) { console.log(`执行命令: ${command}`); try { execSync(command, { stdio: 'inherit' }); } catch (error) { console.error(`命令执行失败: ${error.message}`); process.exit(1); } } //处理数据 function setConfigData() { if (argv === 'undefined' || isNullES(argv)) { process.exit(1); return } console.log(`----------------------------`) console.log(`准备开始上传到服务器...`); if (argv === 'all') { //全部上传 for (let i = 0; i < config.length; i++) { const {name, ip, username, password, fileName, path, url} = getObjValue(config[i]) const file_name = `${fileName}.zip` //判断本地文件是否存在 if (!fs.existsSync(`./zip/${file_name}`)) { console.error(`文件 ./zip/${file_name} 不存在`); process.exit(1); } console.log(`----------------------------`) console.log(`准备上传到服务器:${name}`); runCommand(`node ./scripts/upload/upload.js ${ip} ${username} '${password}' ${file_name} ${path} ${url}`); } } else { const index = arrIndex(config, 'name', argv) if (index === -1) { console.log('此平台不存在') process.exit(1); return } const {name, ip, username, password, fileName, path, url} = getObjValue(config[index]) const file_name = `${fileName}.zip` //判断本地文件是否存在 if (!fs.existsSync(`./zip/${file_name}`)) { console.error(`文件 ./zip/${file_name} 不存在`); process.exit(1); } console.log(`----------------------------`) console.log(`准备上传到服务器:${name}`); runCommand(`node ./scripts/upload/upload.js ${ip} ${username} '${password}' ${file_name} ${path} ${url}`); } console.log(`----------------------------`) console.log(`全部上传并部署完成`); } setConfigData()