2026-03-30 14:26:58 +08:00
#!/bin/bash
# 同步inkos生成的章节到Git仓库的脚本
# 作者:番茄小说创作助手
# 日期: 2026-03-30
# 配置
INKOS_DIR = "/root/.openclaw/workspace/tomato-novel/books/末日重生-开局囤货十亿物资/chapters"
GIT_DIR = "/root/.openclaw/workspace/projects/末日重生_囤货"
CHAPTERS_DIR = " $GIT_DIR /chapters "
# 创建chapters目录( 如果不存在)
mkdir -p " $CHAPTERS_DIR "
# 备份现有的chapters目录
BACKUP_DIR = " $GIT_DIR /chapters_backup_ $( date +%Y%m%d_%H%M%S) "
mkdir -p " $BACKUP_DIR "
if [ -d " $CHAPTERS_DIR " ] && [ " $( ls -A " $CHAPTERS_DIR " 2>/dev/null) " ] ; then
echo " 备份现有的章节文件到 $BACKUP_DIR "
cp -r " $CHAPTERS_DIR " /* " $BACKUP_DIR / " 2>/dev/null
fi
# 清空chapters目录( 但保留git跟踪状态)
echo "清空chapters目录..."
rm -f " $CHAPTERS_DIR " /*.md
# 获取inkos目录中所有章节的最新版本
echo "从inkos目录同步最新章节..."
2026-03-30 14:30:01 +08:00
# 找出所有章节编号( 1-30)
for i in { 1..30} ; do
2026-03-30 14:26:58 +08:00
# 格式化为4位数字
chapter_num = $( printf "%04d" $i )
# 找出该章节的所有文件
chapter_files = $( find " $INKOS_DIR " -name " ${ chapter_num } _*.md " -type f | grep -v "backup" | grep -v "备份" | grep -v "report.json" )
if [ -n " $chapter_files " ] ; then
# 按修改时间排序,获取最新的文件
latest_file = $( echo " $chapter_files " | xargs ls -t | head -1)
if [ -n " $latest_file " ] ; then
# 从文件名提取章节标题
filename = $( basename " $latest_file " )
# 提取章节标题( 去除编号和_fixed等后缀)
chapter_title = $( echo " $filename " | sed -E " s/^ ${ chapter_num } _// " | sed -E " s/\.md $// " | sed -E " s/_fixed $// " | sed -E " s/_修复版 $// " | sed -E " s/_全面修复 $// " | sed -E " s/_最终版 $// " | sed -E " s/_标准重写 $// " | sed -E " s/_番茄标准版 $// " )
# 格式化输出文件名
output_file = " $CHAPTERS_DIR /ch ${ i } -第 ${ i } 章 ${ chapter_title } .md "
echo " 同步章节 $i : $filename -> ch ${ i } -第 ${ i } 章 ${ chapter_title } .md "
cp " $latest_file " " $output_file "
fi
fi
done
# 检查实际同步了多少文件
sync_count = $( ls -1 " $CHAPTERS_DIR " /*.md 2>/dev/null | wc -l)
echo " 同步完成!共同步了 $sync_count 个章节文件。 "
# 显示同步的章节列表
if [ $sync_count -gt 0 ] ; then
echo "同步的章节列表:"
ls -1 " $CHAPTERS_DIR " /*.md | sort
fi