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

app = sys.argv[1]
isIntra = (sys.argv[2] == 'intra')
env = sys.argv[3]

isMcPre = (env == 'mc-pre')
module = 'www/' + ((app + '-pre') if isMcPre is True else app)

if app == 'proxy-center' and env == 'pre':
    env = 'pc-pre'
	
isPcPre = (env == 'pc-pre')
if isPcPre is True:
    module = 'www/' + (app + '-pre')

hostFile = '/hosts-honor-i.txt' if isIntra is True else '/hosts-honor.txt'
if app == 'honor-play' and isIntra is False:
   hostFile = '/hosts-honor-play.txt'

filePath = os.path.dirname(sys.argv[0]) + hostFile
ipsMap = CliTool.getIpsMap(filePath, isIntra, defaultModule = module)

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

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

mode = sys.argv[4]

argvNum = len(sys.argv)
if argvNum >= 6:
    timeout = sys.argv[5]
else:
    timeout = 120
timeout = str(timeout)

if isIntra is True:
    localPwdFile = '/home/porsche/publish/tjds1.passwd'
else:
    localPwdFile = '/Users/tangjianhui/Documents/publish/tjds1.passwd'

if isIntra is True:
    localSrc = '/alidata/www/' + app + '/'
    if (isMcPre is True) and (app == 'honor'):
        localSrc = '/alidata/www/honor-pre/'
else:
    if app == 'honor':
        localSrc = CliTool.workspace() + 'honor.master/'
    else:
        localSrc = CliTool.workspace() + app + '.git/'

excluedFile = CliTool.excludeFile()

if app == 'ai_ps':
    excluedFile += ' --exclude=/models/*  --exclude=/libs/__pycache__/* '
if app in ['node-video', 'node-ms-cloud']:
    excluedFile += ' --exclude=/node_modules* '


cmdTpl = 'rsync -%s --delay-updates --del --stats --port=%s --password-file=' + localPwdFile + ' --timeout=' + timeout + excluedFile + localSrc + ' www@%s::%s/'

sshCmdTpl = 'rsync -%s --delay-updates --del --stats [%s] -e ssh' + excluedFile + localSrc + ' www@%s:/alidata/%s/'

Ct = CliTool()
Ct.publish(ips, mode, cmdTpl, isIntra, sshCmdTpl)
