# coding=utf-8
import datetime
import os


def cp_file(rsc, des):
    file_list = os.listdir(rsc)
    for i in file_list:
        if i in ['venv', '.idea', '.gitignore', 'static', 'migrations', '.git', '__pycache__', 'upload', 'templates', 'logs', 'upload-video', 'build.py', 'move.sh']:
            continue
        if os.path.isfile(os.path.join(rsc, i)):
            os.system('copy /Y %s %s' % (os.path.join(rsc, i), os.path.join(des, i)))
        else:
            os.makedirs(os.path.join(des, i))
            cp_file(os.path.join(rsc, i), os.path.join(des, i))


# 程序执行会将前后端程序复制到部署文件夹
if __name__ == '__main__':
    os.system('chcp 65001')
    build_dir = r'C:\Users\m1582\Documents\vmshare\build'
    date = datetime.datetime.today().date().strftime('%Y-%m-%d')
    # 公共api
    rsc_dir = r'..\..\api_django'
    des_dir = r'%s\api_django' % build_dir
    if os.path.exists(des_dir):
        if not os.path.exists(r'%s\zzzz_bak' % build_dir):
            os.makedirs(r'%s\zzzz_bak' % build_dir)
        if os.path.exists(r'%s\zzzz_bak\%s_api_django' % (build_dir, date)):
            os.system(r'rd /s /q %s\zzzz_bak\%s_api_django' % (build_dir, date))
        os.system(r'move %s %s\zzzz_bak\%s_api_django' % (des_dir, build_dir, date))
    os.makedirs(des_dir)
    cp_file(rsc_dir, des_dir)
    # 后端
    rsc_dir = r'..\..\api_iris'
    des_dir = r'%s\api_iris' % build_dir
    if os.path.exists(des_dir):
        if not os.path.exists(r'%s\zzzz_bak' % build_dir):
            os.makedirs(r'%s\zzzz_bak' % build_dir)
        if os.path.exists(r'%s\zzzz_bak\%s_api_iris' % (build_dir, date)):
            os.system(r'rd /s /q %s\zzzz_bak\%s_api_iris' % (build_dir, date))
        os.system(r'move %s %s\zzzz_bak\%s_api_iris' % (des_dir, build_dir, date))
    os.makedirs(des_dir)
    cp_file(rsc_dir, des_dir)
    # 前端
    rsc_dir_web = r'C:\Users\m1582\Documents\project\web_ylsa\web_vue\dist'
    if os.path.exists(rsc_dir_web):
        if os.path.exists(r'%s\dist' % build_dir):
            if os.path.exists(r'%s\zzzz_bak\%s_dist' % (build_dir, date)):
                os.system(r'rd /s /q %s\zzzz_bak\%s_dist' % (build_dir, date))
            os.system(r'move %s/dist %s\zzzz_bak\%s_dist' % (build_dir, build_dir, date))
        os.system('move %s %s' % (rsc_dir_web, build_dir))
    # 配置文件
    cp_file(r".\\", build_dir)
