包含: - GIT_WORKFLOW.md - 详细的 Git 工作流规范 - scripts/git-setup.sh - Git 工作区初始化脚本 - scripts/git-daily.sh - 日常 Git 管理脚本 - scripts/git-novel-workflow.sh - 小说专用 Git 工作流 - 更新 .gitignore 排除子仓库的 .git 目录 - 添加 novel-tracker/ 目录 - 添加 projects/ 目录(排除子仓库 .git) - 添加 tomato-novel/ 目录
81 lines
2.2 KiB
Bash
Executable File
81 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# backup-doc.sh - 文档归档脚本
|
||
# 使用方法:./backup-doc.sh <文件类型> <文件名>
|
||
# 示例:./backup-doc.sh outline
|
||
# 示例:./backup-doc.sh chapter chapter-05
|
||
|
||
set -e
|
||
|
||
# 颜色输出
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# 获取当前日期
|
||
DATE=$(date +%Y%m%d)
|
||
|
||
# 参数检查
|
||
if [ $# -lt 1 ]; then
|
||
echo -e "${RED}错误:缺少参数${NC}"
|
||
echo "使用方法:./backup-doc.sh <文件类型> <文件名>"
|
||
echo "示例:./backup-doc.sh outline"
|
||
echo "示例:./backup-doc.sh chapter chapter-05"
|
||
exit 1
|
||
fi
|
||
|
||
DOC_TYPE=$1
|
||
DOC_NAME=$2
|
||
|
||
# 根据文档类型设置路径
|
||
if [ "$DOC_TYPE" = "outline" ]; then
|
||
SOURCE_FILE="current/outline.md"
|
||
ARCHIVE_DIR="archive/outline-history"
|
||
elif [ "$DOC_TYPE" = "chapter" ]; then
|
||
if [ -z "$DOC_NAME" ]; then
|
||
echo -e "${RED}错误:章节类型需要提供章节名${NC}"
|
||
exit 1
|
||
fi
|
||
SOURCE_FILE="current/$DOC_NAME.md"
|
||
ARCHIVE_DIR="archive/chapter-history/$DOC_NAME"
|
||
else
|
||
echo -e "${RED}错误:不支持的文档类型: $DOC_TYPE${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
# 检查源文件是否存在
|
||
if [ ! -f "$SOURCE_FILE" ]; then
|
||
echo -e "${RED}错误:源文件不存在: $SOURCE_FILE${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
# 获取当前版本号
|
||
CURRENT_VERSION=$(grep "版本:" "$SOURCE_FILE" | head -1 | sed 's/.*v\([0-9.]*\).*/\1/')
|
||
if [ -z "$CURRENT_VERSION" ]; then
|
||
echo -e "${YELLOW}警告:未找到版本号,使用默认版本号 v1.0${NC}"
|
||
CURRENT_VERSION="1.0"
|
||
fi
|
||
|
||
# 创建归档目录
|
||
mkdir -p "$ARCHIVE_DIR"
|
||
|
||
# 归档文件
|
||
ARCHIVE_FILE="$ARCHIVE_DIR/${DOC_NAME}-v${CURRENT_VERSION}-${DATE}.md"
|
||
echo -e "${GREEN}归档文件:$ARCHIVE_FILE${NC}"
|
||
cp "$SOURCE_FILE" "$ARCHIVE_FILE"
|
||
|
||
# 更新章节 CHANGELOG(如果是章节)
|
||
if [ "$DOC_TYPE" = "chapter" ]; then
|
||
CHANGELOG_FILE="$ARCHIVE_DIR/CHANGELOG.md"
|
||
if [ ! -f "$CHANGELOG_FILE" ]; then
|
||
echo "# 版本历史" > "$CHANGELOG_FILE"
|
||
echo "" >> "$CHANGELOG_FILE"
|
||
fi
|
||
echo "## [$DATE] - v$CURRENT_VERSION" >> "$CHANGELOG_FILE"
|
||
echo "备份文件: $ARCHIVE_FILE" >> "$CHANGELOG_FILE"
|
||
echo "" >> "$CHANGELOG.md"
|
||
fi
|
||
|
||
echo -e "${GREEN}归档完成!${NC}"
|