Git hooks 实现 commit 自动生成项目目录实现

可以参考之前更改commit的逻辑。不过要注意,如果设置了全局 hooks , 项目内的就无法使用了

#!/bin/sh

# 获取当前仓库的工作目录(去掉末尾的 .git/)
REPO_NAME=$(git remote get-url origin | xargs basename -s .git)
echo "Repository Name: $REPO_NAME"

# 定义处理特殊仓库的函数
panshi_pre() {
    # 切换到项目的根目录
    cd "$(git rev-parse --show-toplevel)" || { echo "Failed to change to toplevel directory"; exit 1; }
    # 执行 kuai 命令生成 catalogue.md
    /Users/thh/go/bin/kuai tool:build_catalogue > catalogue.md 2>&1
    # 检查 catalogue.md 是否存在并且不是空的
    if [ ! -s catalogue.md ]; then
        echo "文件没有生成检查是否正常"
        exit 0
    fi
    # 将 catalogue.md 添加到暂存区
    git add catalogue.md
    # 输出提示信息
    echo "目录生成"
}

# 判断是否需要处理特殊仓库
if [[ "$REPO_NAME" == *"panshi-doc"* ]]; then
    # 调用在后面定义的函数
    panshi_pre
    exit 0  # 如果函数内部没有退出,则在这里退出
else
    echo "不需要生成目录"
    exit 0
fi

评论列表