python语言编写的php laravel项目发布脚本(生产环境实测)
使用
全部执行:./deploy.py --all
优化系统:./deploy.py --optimize
composer:./deploy.py --composer
使用帮助:./deploy.py --help
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import subprocess, sys
def execute( args = [], runAll = False ):
# composer必须是优先执行的
if '--composer' in args:
args.remove( '--composer' )
args.insert( 0, '--composer' )
if True == runAll:
cmdList = getCommands( 'all' )
else:
cmdList = []
for arg in args:
cmdList += getCommands( arg )
if ( 0 == len( cmdList ) ):
if ( 1 < len( args ) ):
showHelp()
else:
cmdList = getCommands( '--optimize' )
for cmd in cmdList:
subprocess.call( cmd, shell = True )
print '发布成功!'
sys.exit(0)
def showHelp():
print '\n可用参数:'
print '--optimize 更新配置缓存、更新路由缓存, 新增路由至数据库'
print '--composer 更新composer依赖关系'
print '';
sys.exit(0)
def getCommands( option ):
if 'all' == option:
cmdList = []
# 分多行时注意行尾加 "\"
cmdList += getCommands( '--composer' ) \
+ getCommands( '--optimize' )
return cmdList
elif '--optimize' == option:
return [
'php artisan cache:clear',
'php artisan config:cache',
'php artisan route:cache',
]
elif '--composer' == option:
return [
'composer update'
]
else:
return []
if __name__ == '__main__':
args = sys.argv
if '--help' in args:
showHelp()
elif '--all' in args:
execute(args, True)
else:
execute(args)