#!/usr/bin/env python3
# -*- coding:utf-8 -*-
from inc import CliTool
import sys, os

app = sys.argv[1]
isIntra = (sys.argv[2] == 'intra')
pubEnv = sys.argv[3]
mode = sys.argv[4]

pubType = False
if mode in ['web', 'api']:
    pubType = sys.argv[4]
    mode = sys.argv[5]
    
isLocal = sys.argv[2] == 'pub' or sys.argv[2] == 'pre'

if(app != 'tbksh' and pubEnv == 'mc-pre'):
    print("错误的发布命令，非上货不支持mc-pre命令")
    exit()

if app == 'tbksh':
    repo =  'honor-tb/' if isIntra else 'honor-tb.git/'
    module = 'www/honor-tb'
elif app == 'tbk':
    repo = 'tbdiscount/' if isIntra else 'tbk-tbdiscount.git/'
    module = 'www/tbdiscount'
elif app == 'crm':
    repo = 'coupon/' if isIntra else 'tbk-crm.git/'
    module = 'www/coupon'
elif app == 'trade':
    repo = 'trade/' if isIntra else 'tbk-trade.git/'
    module = 'www/trade'
elif app == 'baizhe':
    repo = 'baizhe/' if isIntra else 'tbk-baizhe.git/'
    module = 'www/baizhe'
else:
    repo = (app + '/') if isIntra else (app + '.git/')
    module = 'www/' + app

module += ('-pre' if (pubEnv == 'mc-pre' or pubEnv == 'pre') else '')

filePath = os.path.dirname(sys.argv[0]) + '/hosts-jst-tbk.txt'
ipsMap = CliTool.getIpsMap(filePath, isIntra, 8873, module)

envList = CliTool.getEnvList(pubEnv, ipsMap, isIntra)

ips = {}
for env in envList:
    ips = dict(ips, **ipsMap[env])


if isIntra is True:
    localPwdFile = '/home/porsche/publish/tjds1.passwd'
    localSrc = '/alidata/www/' + repo
else:
    localPwdFile = '/Users/tangjianhui/Documents/publish/tjds1.passwd'
    localSrc = CliTool.workspace() + repo

cmdTplExt = ''
if pubType == 'web':
    cmdTplExt += ' --exclude=/api/* --include=/web/dist/ --include=/web/distv1/ '       
elif pubType == 'api':
    cmdTplExt += ' --include=/api/ '
else:
    cmdTplExt += ' --include=/api/ --include=/web/dist/ --include=/web/distv1/ '

timeout = '120'
cmdTpl = 'rsync -%s --delay-updates --del --stats --port=%s --password-file=' + localPwdFile + ' --timeout=' + timeout + cmdTplExt + CliTool.excludeFile() + ' --exclude=/var/* ' + localSrc + ' www@%s::%s/'

Ct = CliTool()
Ct.publish(ips, mode, cmdTpl, php_syntax_check = False)
