2014-03-13 16:29:47 +08:00
|
|
|
#!/usr/bin/python
|
|
|
|
#create new project by cocos-console
|
|
|
|
#build new project and run
|
|
|
|
|
|
|
|
import os
|
|
|
|
import sys
|
2014-03-19 17:57:19 +08:00
|
|
|
import json
|
|
|
|
|
|
|
|
|
|
|
|
# get payload argvs
|
|
|
|
console_param = 'create'
|
|
|
|
# payload = ''
|
|
|
|
if os.environ.has_key('payload'):
|
|
|
|
payload_str = os.environ['payload']
|
|
|
|
payload = json.loads(payload_str)
|
|
|
|
if payload.has_key('console'):
|
|
|
|
console_cmd = payload['console']
|
|
|
|
print 'console_param:',console_param
|
2014-03-13 16:29:47 +08:00
|
|
|
|
2014-03-20 10:24:10 +08:00
|
|
|
console_param_arr = console_param.split(' ')
|
|
|
|
|
2014-03-13 16:29:47 +08:00
|
|
|
project_types = ['cpp', 'lua']
|
|
|
|
PROJ_SUFFIX = 'Proj'
|
|
|
|
phonePlats = ['mac','ios','android']
|
|
|
|
|
2014-03-19 17:57:19 +08:00
|
|
|
#need use console's position, perhaps should be set an env-param
|
2014-03-13 16:29:47 +08:00
|
|
|
cocos_console_dir = 'tools/cocos2d-console/bin/'
|
|
|
|
|
|
|
|
#now cocos2d-console suport different run on Platforms, e.g: only run android on win
|
|
|
|
runSupport = {
|
|
|
|
'darwin' : [1, 1, 1],
|
|
|
|
'win' : [0, 0, 1],
|
|
|
|
'linux' : [0, 0, 1]
|
|
|
|
}
|
|
|
|
|
|
|
|
curPlat = sys.platform
|
|
|
|
if curPlat.find('linux') >= 0:
|
|
|
|
curPlat = 'linux'
|
|
|
|
elif curPlat.find('darwin') >= 0:
|
|
|
|
curPlat = 'darwin'
|
|
|
|
else:
|
|
|
|
curPlat = 'win'
|
|
|
|
print 'current platform is:', curPlat
|
|
|
|
|
|
|
|
def clean_project():
|
|
|
|
for proj in project_types:
|
|
|
|
cmd = 'rm -rf '+proj+PROJ_SUFFIX
|
|
|
|
os.system(cmd)
|
|
|
|
|
|
|
|
def create_project():
|
|
|
|
print 'will create_project: '
|
|
|
|
idx = 0
|
|
|
|
for proj in project_types:
|
|
|
|
print 'proj: ', proj
|
2014-03-19 17:57:19 +08:00
|
|
|
cmd = './'+cocos_console_dir+'cocos new -l '+proj+' '+proj+PROJ_SUFFIX
|
2014-03-13 16:29:47 +08:00
|
|
|
print proj,'cmd:',cmd
|
|
|
|
idx += 1
|
|
|
|
info_create = os.system(cmd) #call cmd on win is diff
|
|
|
|
print 'create project',proj,' is:', not info_create
|
|
|
|
def build_run():
|
|
|
|
print 'will build and run'
|
|
|
|
for proj in project_types:
|
|
|
|
idx = 0
|
|
|
|
for phone in phonePlats:
|
2014-03-19 17:57:19 +08:00
|
|
|
cmd = './'+cocos_console_dir+'cocos run -p '+phone+' -s '+proj+PROJ_SUFFIX
|
2014-03-13 16:29:47 +08:00
|
|
|
print proj,'cmd:',cmd
|
|
|
|
if runSupport[curPlat][idx]:
|
|
|
|
info_run = os.system(cmd)
|
|
|
|
print 'run project', proj, 'is:', not info_run
|
|
|
|
idx += 1
|
|
|
|
|
|
|
|
def main():
|
2014-03-19 17:57:19 +08:00
|
|
|
clean_project()
|
|
|
|
create_project()
|
2014-03-20 10:24:10 +08:00
|
|
|
if console_param_arr.count('run'):
|
2014-03-13 17:05:10 +08:00
|
|
|
build_run()
|
2014-03-13 16:29:47 +08:00
|
|
|
|
|
|
|
# -------------- main --------------
|
|
|
|
if __name__ == '__main__':
|
|
|
|
sys_ret = 0
|
|
|
|
try:
|
|
|
|
sys_ret = main()
|
|
|
|
except:
|
|
|
|
traceback.print_exc()
|
|
|
|
sys_ret = 1
|
|
|
|
finally:
|
|
|
|
sys.exit(sys_ret)
|
|
|
|
|