python语言编写的php laravel项目发布脚本(生产环境实测)
admin
2023-07-31 01:45:10
0

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)

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...