linux脚本案例:svn export下载配置文件并根据该文件进行目标仓库svn hook的配置

svn hook

xxx/hooks/post-commit

#!/bin/sh

# POST-COMMIT HOOK
REPOS="$1"
REV="$2"
TXN_NAME="$3"

#mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf



bash /home/DJ/download-and-config

/home/DJ/download-and-config

#!/bin/bash

# SVN仓库URL和本地目录
SVN_REPO="https://192.168.100.101/svn2/config/projects.txt"
LOCAL_DIR="/home/DJ"

# 下载projects.txt文件到指定目录
export SVN_SSL_NO_VERIFY=true
svn export --force "$SVN_REPO" "$LOCAL_DIR/config"

#忽略已经配置规则的目录
sed -i '/<仓库名称>/d' "$LOCAL_DIR/config/projects.txt"


# 逐行读取projects.txt文件
while IFS= read -r project; do
  # 检查/var/www/svn目录中是否存在相应的项目目录  
  if [ -d "/var/www/svn/$project" ]; then
    # 切换到项目目录    
    cd "/var/www/svn/$project" || exit 1

    # 复制hooks目录下的文件到当前目录    
    cp "/home/DJ/hooks/svncheckerconfig.ini" ./hooks
    cp "/home/DJ/hooks/pre-commit" ./hooks
    cp "/home/DJ/hooks/post-commit" ./hooks

  fi

  # 检查/home目录中是否存在相应的项目目录  if [ -d "/home/$project" ]; then
    # 切换到项目目录    cd "/home/$project" || exit 1

    # 复制hooks目录下的文件到当前目录    cp "/home/DJ/hooks/svncheckerconfig.ini" ./hooks
    cp "/home/DJ/hooks/pre-commit" ./hooks
    cp "/home/DJ/hooks/post-commit" ./hooks

  fi

done < "$LOCAL_DIR/config/projects.txt"

猜你喜欢

转载自blog.csdn.net/a772304419/article/details/133385376