42 lines
1.2 KiB
Bash
42 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
#############################################################################################
|
|
# 用途: Clone 项目
|
|
# 作者: 丁辉
|
|
# 编写时间: 2024-01-18
|
|
# 更新时间: 2025-12-26
|
|
#############################################################################################
|
|
|
|
# 读取文件并存入数组
|
|
GIT_NAME=($(<repositories.list))
|
|
TAR_NAME="$3"
|
|
|
|
for FILE in "${GIT_NAME[@]}"; do
|
|
GIT_URL=$(echo $FILE | awk -F '//' '{print $2}')
|
|
|
|
# 拉取项目
|
|
echo -e "\033[32m 正在拉取 $GIT_URL ... \033[0m"
|
|
git clone --depth=1 https://$1:$2@$GIT_URL > /dev/null 2>&1
|
|
|
|
|
|
GIT_FILE=$(echo $FILE | sed 's/\.git$//' | grep -oE '[^/]+$')
|
|
# 清理 .git 文件
|
|
# rm -rf $GIT_FILE/.git > /dev/null 2>&1
|
|
echo $GIT_FILE >> file.txt
|
|
done
|
|
|
|
# 打包
|
|
echo -e "\033[32m 正在打包文件 ... \033[0m"
|
|
tar -zcvf $TAR_NAME.tar $(cat file.txt) > /dev/null 2>&1
|
|
|
|
# GZIP压缩
|
|
echo -e "\033[32m 正在压缩文件 ... \033[0m"
|
|
gzip -c $TAR_NAME.tar > $TAR_NAME.tar.gz
|
|
# 判断是否压缩成功
|
|
if [ $? -eq 0 ]; then
|
|
rm -f $TAR_NAME.tar
|
|
echo -e "\033[32m 文件压缩成功: $TAR_NAME.tar.gz \033[0m"
|
|
else
|
|
echo -e "\033[31m 文件压缩失败 \033[0m"
|
|
exit 1
|
|
fi |