$ cat get-mg-source-upload-git.sh
#!/bin/bash
start_get_migu_source_docker(){
ipAdd='10.10.56.101'
mPort='3566'
docker run -d \
--restart=always \
--name migu_video \
--network host \
-e mport=${mPort} \
-e mhost="http://${ipAdd}:${mPort}" \
develop767/migu_video
}
get_migu_source(){
saveDir='/tmp/mg.txt'
curl http://10.10.56.101:3566 >${saveDir}
}
upload_migu_to_github(){
set -e
# ====== 配置区 ======
USER_NAME='zuiniubi'
#GITHUB_TOKEN='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'
# 仓库名
REPO_NAME='myRepo01'
LOCAL_UPLOAD_FILE_NAME="mg.txt"
LOCAL_UPLOAD_FILE_ADD="/tmp/mg.txt"
BRANCH="main"
LOCAL_REPO_DIR="/tmp/github_repo"
TV_DIR=${LOCAL_REPO_DIR}/TV
# 仓库地址
REPO_URL="https://github.com/${USER_NAME}/${REPO_NAME}.git"
## ======= 使用token连接github地址
## github创建token
## 访问https://github.com/settings/tokens
## 点击 Generate new token
## 选择 Generate new token(classic)进行创建,权限必须选择上repo,否则没有权限
#GITHUB_TOKEN='ghp_clBTIUYHTTmPWZMniPHXR6zc8y2niD2miQLL'
## git remote地址,push前进行免密设置.使用token时使用
##REMOTE_ADD="https://${USER_NAME}:${GITHUB_TOKEN}@github.com/${USER_NAME}/${REPO_NAME}.git"
## ======= 使用公钥连接github地址
## 本地生成ssh-key,执行ssh-keygen命令
## github设置公钥模式允许本地机器访问
## 公钥上传地址https://github.com/settings/keys
## 点击New SSH keys 填入本地/root/.ssh/id_rsa.pub中内容,名称任意填写直接add
## 添加完成后再本地机器上测试,执行命令:ssh -T git@github.com
REMOTE_ADD="git@github.com:${USER_NAME}/${REPO_NAME}.git"
# ====================
echo "1. 检查源文件..."
if [ ! -f "$LOCAL_UPLOAD_FILE_ADD" ]; then
echo "文件不存在: $LOCAL_UPLOAD_FILE_ADD"
exit 1
fi
echo "2. 初始化或更新仓库..."
if [ ! -d "$LOCAL_REPO_DIR/.git" ]; then
rm -rf "$LOCAL_REPO_DIR"
git clone "$REPO_URL" "$LOCAL_REPO_DIR"
else
cd "$LOCAL_REPO_DIR"
git fetch origin
git reset --hard origin/$BRANCH
fi
cd "$LOCAL_REPO_DIR"
echo "3. 覆盖文件..."
\cp -f "$LOCAL_UPLOAD_FILE_ADD" "$TV_DIR/$LOCAL_UPLOAD_FILE_NAME"
echo "4. 提交变更..."
git add "${TV_DIR}/${LOCAL_UPLOAD_FILE_NAME}"
# 判断是否有变化(避免空提交报错)
if git diff --cached --quiet; then
echo "无变化,跳过提交"
exit 0
fi
git commit -m "update mg.txt $(date '+%F %T')"
echo "5. 推送到GitHub(覆盖远端)..."
git remote set-url origin ${REMOTE_ADD}
git push origin $BRANCH
echo "完成上传"
}
# 启动容器通过curl ${muhost}获取咪咕源
start_get_migu_source_docker
# 获取mg源存储到本地,上传到git时会用到此文件
get_migu_source
# 上传mg源文件到github
upload_migu_to_github
# 。。。