Files
sanguo_quant_live/management/kanban_update.py
T
2026-04-02 08:55:07 +08:00

70 lines
2.0 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Kanban Task Update Script for Sanguo Quant Workflow
Usage:
python kanban_update.py <task_id> <state> <description>
Example:
python kanban_update.py JJC-20260401-007 doing "中书省处理中"
"""
import sys
import os
from datetime import datetime
# 任务跟踪文件位置
KANBAN_FILE = os.path.join(os.path.dirname(__file__), 'task_tracker.md')
def main():
if len(sys.argv) < 4:
print("Usage: python kanban_update.py <task_id> <state> <description>")
print(" state: pending | doing | review | done | blocked")
print(" description: update description in quotes")
sys.exit(1)
task_id = sys.argv[1]
state = sys.argv[2]
description = sys.argv[3]
now = datetime.now().strftime("%Y-%m-%d %H:%M GMT+8")
# 检查文件是否存在
if not os.path.exists(KANBAN_FILE):
# 创建新文件
with open(KANBAN_FILE, 'w') as f:
f.write("# 📋 Sanguo Quant Kanban Task Tracker\n\n")
f.write("| Task ID | State | Last Update | Description |\n")
f.write("|---------|-------|-------------|-------------|\n")
# 读取现有内容
lines = []
found = False
with open(KANBAN_FILE, 'r') as f:
lines = f.readlines()
# 更新或添加任务
new_lines = []
for line in lines:
if line.startswith("|") and task_id in line:
# 更新现有任务
new_line = f"| {task_id} | **{state}** | {now} | {description} |\n"
new_lines.append(new_line)
found = True
else:
new_lines.append(line)
if not found:
# 添加新任务
if len(new_lines) >= 3:
new_lines.insert(len(new_lines), f"| {task_id} | **{state}** | {now} | {description} |\n")
# 写回文件
with open(KANBAN_FILE, 'w') as f:
f.writelines(new_lines)
print(f"✅ Kanban updated: {task_id}{state} @ {now}")
print(f" Description: {description}")
if __name__ == "__main__":
main()