python自动化-vue

复制代码
import sys
import time
import os
import paramiko
from pygments.lexers import shell
import zipfile
import json

baseconfig =None

# baseconfig={
#   "ip": "xxxxxxx",
#   "port": xx,
#   "username": "x",
#   "password": "xxx",
#   "remotedir": "/xx/xx/xxx"
# }

with open("pyconfig","r") as f:
  baseconfig = json.load(f)

print("===========开始npm打包===========")
os.system('npm run build')
print("===========npm打包完成,开始生成zip===========")
# 开始打包为zip
output_name = "dist.zip"
if os.path.exists(output_name):
  os.remove(output_name)

zip = zipfile.ZipFile(output_name, "w", zipfile.ZIP_DEFLATED)
for root, dirs, files in os.walk("./dist"):
  for file in files:
    if str(file).startswith("~$"):
      continue
    filepath = os.path.join(root, file)
    writepath = os.path.relpath(filepath)
    zip.write(filepath, writepath)
zip.close()
print("===========生成zip结束===========")

jarpath = sys.path[0] + "/" + output_name
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=baseconfig["ip"], port=baseconfig["port"], username=baseconfig["username"],
            password=baseconfig["password"])
ssh.get_transport()
sftp = paramiko.SFTPClient.from_transport(ssh.get_transport())
remotedir = baseconfig["remotedir"]
sftp.put(output_name, remotedir + output_name)
print("===========上传成功===========")
shell = "cd %s && rm -rf static dist index.html favicon.ico && unzip %s && mv dist/* ./" % (remotedir, output_name)
stdin, stdout, stderr = ssh.exec_command(shell)
print(stderr.readline())
print(stdout.read())
print("===========重启成功===========")
exit(0)
复制代码

 

posted @   wujf  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2018-07-25 mysql日期 获取本月第一天 获取下个月的第一天
点击右上角即可分享
微信分享提示