const shell = require('shelljs')
const path = require('path');
const config = {
  ip: "118.190.89.49", // ssh地址
  username: "root", // ssh 用户名
  port: 22,      //端口
  password: "dstech@123", // ssh 密码
  path: '/home/itsm_v2_/web/pc', // 上传地址,删除地址
  buildPath: '../dist/spreadSheet' // 本地打包后文件地址
}
let Client = require('ssh2-sftp-client');

function connectSSh() {
  let sftp = new Client();
  sftp.connect({
    host: config.ip,
    port: config.port,
    username: config.username,
    password: config.password
  }).then(() => {
    console.log("-----先执行删除服务器文件-----")
    return sftp.rmdir(config.path, true);
  }).then(() => {
    // 上传文件
    console.log("-----开始上传-----")
    return sftp.uploadDir(path.resolve(__dirname, config.buildPath), config.path);
  }).then((data) => {
    console.log("-----上传完成-----");
    sftp.end();
  }).catch((err) => {
    console.log(err, '-----失败-----');
    sftp.end();
  });
}
function runTask() {
  //打包完成
  console.log(`当前NodeJs版本是${process.version}`);
  const isNodeVersionLt17 = parseInt(process.version) < 17;
  const execStr = isNodeVersionLt17 ? 'npm run build' : 'npm run build:17';
  if (shell.exec(execStr).code == 0) {
    if (shell.exec(`find dist -name '*.js' -print0 | xargs -0 gzip -k`).code == 0) {
      if (shell.exec(`find dist -name '*.css' -print0 | xargs -0 gzip -k`).code == 0) {
        console.log("-----打包成功-----");
        //提交上传
        connectSSh();
      }
    }
  }
}
runTask()