自制简单的脚手架-shell版(一)

前言

每次新增一个项目的时候,都需克隆项目修改一堆文件。很不方便,如果有一个自动化脚本,一键搞定,可以省很多开发时间。

  • 针对自己的项目思考了一下,项目用的YII框架,使用Git子模块实现的多项目架构,根据自己创建项目的步骤分析了一下,一共分为6步。
    1、克隆项目架子
    2、修改命名空间
    3、修改配置文件
    4、初始化Git仓库
    5、提交初始版本
    6、创建controller、model、service等接口文件正式开发

  • 针对这几个步骤,可以制作一个自动化脚本。首先选择用shell命令实现。

shell命令制定

  • 要设计的脚本主要实现初始化项目和添加服务文件两个功能。支持两个参数:
  • subModule 要初始化的子项目名称
  • service 增加的服务名称
    定义好了 开始制作吧。
./submit.sh   [subModule]  [service]

初始化项目

  • 脚本主要逻辑 先做个简单参数校验,第二个参数不传则是初始化项目,分三步:一、先克隆项目到本地,二、进行命名空间修改、三、提交到新Git仓库。
# 参数校验
if [ $1 ==  '' ]
then
    echo  "--submodule  is null"
    exit 0
else
    echo  "--clone submodule"
fi
# 初始化项目
if [ $2 ==  '' ]
then
    	# 克隆项目 到本地
    	git  https://github.com/xxxx/demo.git  $1
    	pwd
    	echo  "clone module "
    	# 替换默认命名空间名
    	renameSpace  $1  ./$1
    	# 提交Git分支
    	addGitConfig $1
	else
    	#添加service 待补充...
    	exit 
	fi
  • 修改命名空实现
    这步操作比较暴力,首先在Demo中定义了一个固定字符,直接使用sed命令 替换子目录的默认命名空间.
#替换默认的命名空间
renameSpace()
{
   echo  "----begin rename namespace"
   pushd $2
   upper = echo $1 | awk '{print toupper($0)}'
   sed -i ""  "s/#demo/$1/g" `grep "#demo" -rl ./`
   sed -i ""  "s/#DEMO/${upper}/g" `grep "#DEMO" -rl ./`
   popd
   echo  "----done "
}
  • 添加Git子模块
    记得创建Git子模块时,要在根目录修改.gitmodules文件,还要确保Git命令能够正常使用.
# 添加子模块
addGitConfig()
{
    if [$1 =='' ]
    then
        exit 0
    fi    giturl="git@github.com/xxxx/sub_${1}.git"
    echo  "------add git config "
    # 进入子目录
    pushd $1
    # 添加子模块
    echo  "[submodule \"${1}\"]
        path = ${1}
        url = ${giturl}"   >>  ../.gitmodules
    rm -rf .git
    #初始化新的Git分支
    git init
    git add ./*
    git commit -m "first version "
    git remote add origin ${giturl}
    popd
    echo  "------done "
}

好了 第一步初始化已经完成,要去测试项目配置了(待续…)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值