python语言编写的php laravel项目发布脚本(生产环境实测)

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值