周梦康 发表于 2017-11-03 864 次浏览 标签 : shell

免费领取阿里云优惠券 我的直播 - 《PHP 进阶之路》

我们在发布后端服务的时候可能在里面硬编码了前端资源的版本号,如果与前端同学沟通不及时,可能会出现后端发布了,但是前端还没发布的情况。所以,发布前检测还是很有必要的,所以我写了这个脚本哈,适合快速迭代的小团队使用。

Color_xx系列函数来自lnmp一键安装包
知识点:使用 wget 判断文件是否存在 https://mengkang.net/1067.html

#!/bin/bash

Color_Text()
{
  echo -e " \e[0;$2m$1\e[0m"
}

Echo_Red()
{
  echo $(Color_Text "$1" "31")
}

Echo_Green()
{
  echo $(Color_Text "$1" "32")
}

Echo_Yellow()
{
  echo $(Color_Text "$1" "33")
}

wget_check()
{
    url=$1

    res=`wget --no-check-certificate --header="Host: g.alicdn.com" --spider "${url/g.alicdn.com/140.205.132.240}" 2>&1`

    Echo_Yellow "Host: g.alicdn.com 140.205.132.240"
    Echo_Green ${url}

    exists=`echo ${res} | grep "Remote file exists"`

    if [ ! -n "${exists}" ]; then
        Echo_Red "请求失败,请先发布前端资源"
        exit 1
    else
        Echo_Green "请求成功"
    fi
}

release_confirm()
{
    version=$1
    app=$2
    Echo_Red "即将发布的 ${app} 前端资源版本号为 "${version}" 是否继续 y or n"

    read confirm

    if [ "$confirm" != "y" ]; then
        Echo_Yellow "发布取消"
        exit 1
    fi
}

fe_check()
{
    ######################## pc 前端资源发布检测 ########################

    pc_fe_version=`grep "protected..feversion" xxx/Base.php|awk -F"'" '{print $2}'`

    pc_fe_css_test_url="https://g.alicdn.com/aliyun/yunqi/${pc_fe_version}/css/common.css"

    wget_check ${pc_fe_css_test_url}

    release_confirm ${pc_fe_version} "pc"

    ######################## h5 前端资源发布检测 ########################

    m_fe_version=`grep "private..feversion" xxx/Base.php|awk -F"'" '{print $2}'`

    m_fe_css_test_url="https://g.alicdn.com/aliyun/m-aliyun-yunqi/${m_fe_version}/css/blogDetail.css"

    wget_check ${m_fe_css_test_url}

    release_confirm ${m_fe_version} "h5"
}

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表