novel-doomsday-resurgence/git_sync_system/init_git_repo.sh
唐天洛 5dc8c00de0 feat(sync): 固化小说内容到Git仓库
📚 小说内容:
- 《末日重生-开局囤货十亿物资》33章
- 完整的状态文件、记忆索引、钩子系统

🛠️ 系统配置:
- 版本控制管理系统
- 自动化脚本系统
- 质量监控系统

🧠 固化记忆:
- 长期记忆文件
- 系统配置文档
- 恢复流程指南

💾 数据安全:
- 本地备份系统
- Git版本控制
- 远程同步机制

同步时间: 2026-03-30 16:25:35
系统状态: inkos正常运行中 (PID: 1433309)
创作进度: 第33章《油粮》创作中
2026-03-30 16:25:35 +08:00

340 lines
8.9 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Git仓库初始化脚本
set -e
echo "========================================="
echo "Git小说同步系统初始化"
echo "========================================="
# 配置
NOVEL_PATH="/root/.openclaw/workspace/tomato-novel/books/末日重生-开局囤货十亿物资"
GIT_REPO_NAME="novel-morizhongsheng"
GIT_REMOTE_URL="https://gitea.nevadalice.top:226/liyuchen/$GIT_REPO_NAME.git"
GIT_USERNAME="liyuchen"
GIT_PASSWORD="liyuchen"
echo "📁 小说路径: $NOVEL_PATH"
echo "🌐 Git仓库: $GIT_REMOTE_URL"
# 检查小说路径
if [ ! -d "$NOVEL_PATH" ]; then
echo "❌ 小说路径不存在: $NOVEL_PATH"
exit 1
fi
# 创建Git仓库目录
GIT_REPO_DIR="/root/.openclaw/workspace/git_repos/$GIT_REPO_NAME"
echo "📁 创建Git仓库目录: $GIT_REPO_DIR"
mkdir -p "$GIT_REPO_DIR"
# 进入小说目录
cd "$NOVEL_PATH"
# 初始化Git仓库
echo "🔄 初始化Git仓库..."
git init "$GIT_REPO_DIR"
# 复制小说文件到Git仓库
echo "📋 复制小说文件..."
rsync -av --exclude='backup_*' --exclude='*_backup*' --exclude='*_report*' --exclude='*_fix*' --exclude='*_修复*' --exclude='*_质检*' --exclude='.git' . "$GIT_REPO_DIR/"
# 创建.gitignore文件
echo "📄 创建.gitignore..."
cat > "$GIT_REPO_DIR/.gitignore" << 'EOF'
# 备份文件
backup_*
*_backup*
*_report*
*_fix*
*_修复*
*_质检*
# 临时文件
*.tmp
*.temp
*.log
# 系统文件
.DS_Store
Thumbs.db
# IDE文件
.vscode/
.idea/
*.swp
# 大文件
*.zip
*.tar
*.gz
EOF
# 创建README.md
echo "📖 创建README.md..."
cat > "$GIT_REPO_DIR/README.md" << 'EOF'
# 《末日重生:开局囤货十亿物资》
## 📖 小说简介
- **标题**: 末日重生:开局囤货十亿物资
- **类型**: 都市异能、末世囤货、重生爽文
- **目标章节**: 200章
- **当前进度**: 22/200章 (11%)
- **总字数**: 约80,000字
- **创作平台**: 番茄小说
## 📚 章节列表
1. 第1章冰点记忆
2. 第2章暗流
3. 第3章仓鼠行动
4. 第4章粮草先行
5. 第5章铁壁
6. 第6章焊花
7. 第7章骨刺
8. 第8章暗流2
9. 第9章对峙
10. 第10章倒计时
11. 第11章筹码
12. 第12章质询
13. 第13章铁锈
14. 第14章断水
15. 第15章昏沉
16. 第16章电话
17. 第17章煎熬
18. 第18章钢渣
19. 第19章赴约
20. 第20章充电
21. 第21章焊火
22. 第22章抉择
## 📁 项目结构
```
末日重生-开局囤货十亿物资/
├── README.md # 项目说明
├── book.json # 书籍元数据
├── chapters/ # 章节文件22个
├── story/ # 故事设定
├── config_backup/ # 配置备份
├── inkos_config.json # InkOS配置
└── index.json # 章节索引
```
## 🔄 同步状态
- **最后同步**: $(date '+%Y-%m-%d %H:%M:%S')
- **同步方式**: 自动Git同步系统
- **仓库地址**: https://gitea.nevadalice.top:226/liyuchen/novel-morizhongsheng
## 📈 创作统计
- **总章节**: 22章
- **总字数**: 约80,000字
- **平均每章**: 约3,600字
- **创作开始**: 2026-03-29
- **最新更新**: 2026-03-30
## 🚀 如何运行
1. 安装Git
2. 克隆仓库: `git clone https://gitea.nevadalice.top:226/liyuchen/novel-morizhongsheng.git`
3. 查看章节: 打开 `chapters/` 目录
## 📝 版权说明
© 2026 唐天洛. 保留所有权利。
本作品为原创小说,仅供学习交流使用。
EOF
# 进入Git仓库目录
cd "$GIT_REPO_DIR"
# 添加远程仓库
echo "🌐 添加远程仓库..."
git remote add origin "$GIT_REMOTE_URL"
# 设置Git配置
echo "⚙️ 设置Git配置..."
git config user.name "$GIT_USERNAME"
git config user.email "$GIT_USERNAME@example.com"
git config credential.helper 'store --file ~/.git-credentials'
# 保存Git凭据
echo "https://$GIT_USERNAME:$GIT_PASSWORD@gitea.nevadalice.top:226" > ~/.git-credentials
chmod 600 ~/.git-credentials
# 添加所有文件
echo "📤 添加文件到Git..."
git add .
# 提交初始版本
echo "💾 提交初始版本..."
git commit -m "初始提交: 《末日重生:开局囤货十亿物资》完整项目
包含:
- 全部22章内容
- 书籍元数据配置
- 故事设定文件
- 项目说明文档
提交时间: $(date '+%Y-%m-%d %H:%M:%S')
总章节: 22
总字数: 约80,000字"
# 尝试推送到远程
echo "🚀 推送到远程仓库..."
if git push -u origin main 2>/dev/null || git push -u origin master 2>/dev/null; then
echo "✅ Git仓库初始化完成"
echo "🌐 仓库地址: $GIT_REMOTE_URL"
else
echo "⚠️ 推送失败,可能是远程仓库不存在"
echo "📋 请先在Gitea创建仓库: $GIT_REPO_NAME"
echo "📁 本地仓库已准备就绪: $GIT_REPO_DIR"
fi
# 创建同步脚本
echo "🔧 创建同步脚本..."
cat > "$GIT_REPO_DIR/sync_to_git.sh" << 'EOF'
#!/bin/bash
# 同步小说到Git仓库
set -e
echo "========================================="
echo "同步小说到Git仓库"
echo "========================================="
# 配置
NOVEL_PATH="/root/.openclaw/workspace/tomato-novel/books/末日重生-开局囤货十亿物资"
GIT_REPO_DIR="/root/.openclaw/workspace/git_repos/novel-morizhongsheng"
LOG_FILE="/root/.openclaw/workspace/git_sync_system/sync_log.txt"
# 记录日志
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}
log "开始同步..."
# 检查目录
if [ ! -d "$NOVEL_PATH" ]; then
log "❌ 小说路径不存在: $NOVEL_PATH"
exit 1
fi
if [ ! -d "$GIT_REPO_DIR" ]; then
log "❌ Git仓库目录不存在: $GIT_REPO_DIR"
exit 1
fi
# 进入小说目录
cd "$NOVEL_PATH"
# 检查是否有新内容
log "📊 检查新内容..."
CHAPTER_COUNT=$(find chapters -name "*.md" | grep -v backup | grep -v report | grep -v fix | grep -v 修复 | grep -v 质检 | wc -l)
log "发现 $CHAPTER_COUNT 个章节文件"
# 进入Git仓库
cd "$GIT_REPO_DIR"
# 拉取最新更改
log "📥 拉取最新更改..."
git pull origin main 2>/dev/null || git pull origin master 2>/dev/null
# 同步文件
log "🔄 同步文件..."
rsync -av --delete \
--exclude='backup_*' \
--exclude='*_backup*' \
--exclude='*_report*' \
--exclude='*_fix*' \
--exclude='*_修复*' \
--exclude='*_质检*' \
--exclude='.git' \
"$NOVEL_PATH/" .
# 检查是否有更改
if git diff --quiet; then
log "📭 没有新的更改"
exit 0
fi
# 添加所有更改
log "📤 添加更改..."
git add .
# 提交更改
COMMIT_MSG="更新: $(date '+%Y-%m-%d %H:%M:%S')
更新内容:
- 章节文件更新
- 可能的配置更新
- 自动同步系统更新
章节数: $CHAPTER_COUNT
同步时间: $(date '+%Y-%m-%d %H:%M:%S')"
log "💾 提交更改..."
git commit -m "$COMMIT_MSG"
# 推送到远程
log "🚀 推送到远程仓库..."
if git push origin main 2>/dev/null || git push origin master 2>/dev/null; then
log "✅ 同步完成!"
log "🌐 仓库地址: https://gitea.nevadalice.top:226/liyuchen/novel-morizhongsheng"
else
log "❌ 推送失败"
exit 1
fi
echo "========================================="
echo "🎉 同步完成"
echo "========================================="
EOF
chmod +x "$GIT_REPO_DIR/sync_to_git.sh"
# 创建定时同步脚本
echo "⏰ 创建定时同步配置..."
cat > /root/.openclaw/workspace/git_sync_system/setup_cron.sh << 'EOF'
#!/bin/bash
# 设置Git同步定时任务
echo "设置Git同步定时任务..."
# 备份现有crontab
CRON_BACKUP="/root/.openclaw/workspace/git_sync_system/crontab.backup.$(date +%Y%m%d%H%M%S)"
crontab -l > "$CRON_BACKUP" 2>/dev/null || true
echo "✅ 现有crontab已备份到: $CRON_BACKUP"
# 添加定时任务
(crontab -l 2>/dev/null | grep -v "novel_git_sync"; echo "
# =========================================
# 小说Git同步系统定时任务
# =========================================
# 每小时同步一次
0 * * * * /root/.openclaw/workspace/git_repos/novel-morizhongsheng/sync_to_git.sh >> /root/.openclaw/workspace/git_sync_system/hourly.log 2>&1
# 每天凌晨3点强制同步
0 3 * * * cd /root/.openclaw/workspace/git_repos/novel-morizhongsheng && git add . && git commit -m '每日自动提交' && git push >> /root/.openclaw/workspace/git_sync_system/daily.log 2>&1
# =========================================
") | crontab -
echo "✅ 定时任务设置完成"
echo "📊 当前定时任务:"
crontab -l | grep -A 5 "小说Git同步系统"
EOF
chmod +x /root/.openclaw/workspace/git_sync_system/setup_cron.sh
echo "========================================="
echo "🎉 Git同步系统初始化完成"
echo "========================================="
echo ""
echo "📋 下一步操作:"
echo "1. 登录Gitea创建仓库: $GIT_REPO_NAME"
echo "2. 运行同步脚本: $GIT_REPO_DIR/sync_to_git.sh"
echo "3. 设置定时任务: /root/.openclaw/workspace/git_sync_system/setup_cron.sh"
echo ""
echo "📁 本地仓库: $GIT_REPO_DIR"
echo "🌐 远程仓库: $GIT_REMOTE_URL"
echo "🔧 同步脚本: $GIT_REPO_DIR/sync_to_git.sh"
echo "========================================="