linux shell初始化项目脚本

本文档介绍了一个用于初始化项目的Linux Shell脚本,主要内容包括新建一个名为test的文件夹,并在该文件夹内执行该脚本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux shell初始化项目脚本

新建test文件夹,在test文件夹下运行此脚本

#! /bin/bash
###
###	初始化所有的项目
###

### 字体颜色
#黑 1高亮度显示 0正常显示
black_color='\E[1;30m'
#红
red_color='\E[0;31m'
#绿
green_color='\E[0;32m'
#黄
yellow_color='\E[1;33m' 
#蓝
bule_color='\E[0;34m'  
#紫
purple_color='\E[1;35m'
#深绿
darkgreen_color='\E[1;36m'
#白
white_color='\E[1;37m'
reset='\E[0m'

function printProjectStaticsInfoAndRemoveFile(){
	# 如果 filename为常规文件,则为真
	if [[ -f $2 ]]
	then
		echo $1'的项目数为'`cat $2 | wc -l`'个,分别如下:'
		cat '$2'
	else
		echo $1'的项目数为0个'
	fi

	rm -f $2

}

function checkToolExist(){

	if which $1 > /dev/null
	then
		echo $1'安装成功!'
	else
		echo -e $red_color$1'没有安装,请安装!'$reset
		exit
	fi
}

function cloneProject(){

	url=$1

	projectItem=${url##*\/}

	branch=$2

	if [[ $projectItem == 'all' ]]
	then
		return
	fi
    # 如果 projectItem为目录,则为真
	if [[ -d $projectItem ]]
	then
		echo -e $red_color'该项目'$projectItem'已存在,将跳过'$reset
		echo $projectItem >> skipProjects
		return
	fi

	tryTimes=3

	sucCloneFlag=false

	while [[ $tryTimes > 0 ]] && [[ ! $sucCloneFlg ]]
	do
		
		git clone $url'.git' -b $branch

		if [[ $? -eq 0 ]]
		then
			echo $projectItem >> sucProjects;
			sucCloneFlg=true
		else
			echo $projectItem >> failProjects;
			sucCloneFlg=false
			echo -e $red_color'克隆项目['$projectItem']失败,将重试,重试次数还有['$tryTimes']次'$reset
			rm -rf $projectItem
		fi
		let tryTimes--

	done
}

# 项目url
PROJECT_URL[0]='http://gitlab.test.net/test/test1'
PROJECT_URL[1]='http://gitlab.test.net/test/test2'
PROJECT_URL[2]='all'

tool_list=('git' 'mvn' 'java')

echo -e $green_color'检查工具是否安装:'$reset

for tool in ${tool_list[*]}
do
	checkToolExist $tool
done

# 配置免密码登陆
git config --global credential.helper store

echo '将克隆以下项目:'

for index in ${!PROJECT_URL[*]}
do

	url=${PROJECT_URL[$index]}
	# ${url##*\/}:删掉最后一个 / 及其左边的字符串
	project=${url##*\/}

	echo $index'.'${project}

done

read -p '请选择需要克隆项目的编号' number

while [[ $number -lt 0 ]] || [[ $number -ge ${#PROJECT_URL[*]} ]]
do
	echo '选择项目编号有误,请重新选择'
	read number
done

read -p '请输入需要克隆项目的分支名[如果不填,默认为master]' branch

# 如果 branch长度为零,则为真
if [[ -z $branch ]]
then
	branch='master'
fi

url=${PROJECT_URL[$number]}

project=${url##*\/}

current_path=$PWD
# =~ 表示匹配 $匹配结束符
if [[ $current_path =~ test$ ]]
then

	cd ..
fi

# 克隆项目

echo '开始在['$PWD']目录下克隆git项目['${project}']'

if [[ $project == 'all' ]] 
then

	for url in ${PROJECT_URL[*]} 
	do

	{
		cloneProject $url $branch
	} &

	done

else
	cloneProject $url $branch
fi

wait

printProjectStaticsInfoAndRemoveFile '克隆成功' 'sucProjects'
printProjectStaticsInfoAndRemoveFile '克隆失败' 'failProjects'
printProjectStaticsInfoAndRemoveFile '克隆跳过' 'skipProjects'

echo '配置maven私库'
curl  http://test.aliyuncs.com/maven/settings.xml -o ~/.m2/settings.xml
# $? 最后运行的命令的结束代码(返回值) 
if [[ $? -ne 0 ]]
then
	echo '配置maven私库失败,请查明原因重试!';
	exit
fi

echo '开始编译项目'

if [[ $project == 'all' ]]
then
	cd test
else
	cd $project;
fi

mvn clean install

if [[ $? -ne 0 ]]
then
	echo '编译项目失败,请查明原因重试!';
	exit
else
	echo '编译项目成功,请导入到开发工具中'
fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值