From ac966af3d126d59081d119e05ba02f946257f669 Mon Sep 17 00:00:00 2001
From: ai_xiaopei <xiaopei@aisim.cn>
Date: Sun, 26 Jul 2026 23:22:36 +0800
Subject: [PATCH] fix: 移除所有help中的等号格式
---
cmd/reorg.go | 71 +++++++++++++++++++++++++++++++++++
1 files changed, 71 insertions(+), 0 deletions(-)
diff --git a/cmd/reorg.go b/cmd/reorg.go
new file mode 100644
index 0000000..1aae59d
--- /dev/null
+++ b/cmd/reorg.go
@@ -0,0 +1,71 @@
+package cmd
+
+import (
+ "fmt"
+
+ "github.com/aisim/kb-cli/internal/classify"
+ "github.com/spf13/cobra"
+)
+
+var reorgCmd = &cobra.Command{
+ Use: "reorg",
+ Short: "根据分类结果重组知识库目录",
+ Long: `# reorg - 目录重组
+kb-cli reorg [--plan <文件>] [--dry-run] [--execute] # 根据分类结果重组知识库目录`,
+ RunE: runReorg,
+}
+
+var (
+ reorgPlan string
+ reorgDryRun bool
+ reorgExecute bool
+)
+
+func init() {
+ rootCmd.AddCommand(reorgCmd)
+ reorgCmd.Flags().StringVar(&reorgPlan, "plan", "classification.json", "分类结果文件")
+ reorgCmd.Flags().BoolVar(&reorgDryRun, "dry-run", false, "仅生成迁移计划,不执行移动")
+ reorgCmd.Flags().BoolVar(&reorgExecute, "execute", false, "执行迁移(需要明确确认)")
+}
+
+func runReorg(cmd *cobra.Command, args []string) error {
+ vaultPath := cmd.Flag("vault").Value.String()
+
+ fmt.Println("步骤 1/3: 读取分类结果...")
+ classification, err := classify.LoadClassification(vaultPath, reorgPlan)
+ if err != nil {
+ return fmt.Errorf("读取分类结果失败: %w", err)
+ }
+ fmt.Printf("✓ 读取 %d 个文档分类\n", len(classification.Items))
+
+ fmt.Println("\n步骤 2/3: 生成迁移计划...")
+ plan, err := classify.GenerateMigrationPlan(vaultPath, classification)
+ if err != nil {
+ return fmt.Errorf("生成迁移计划失败: %w", err)
+ }
+
+ if err := classify.SaveMigrationPlan(vaultPath, plan); err != nil {
+ return fmt.Errorf("保存迁移计划失败: %w", err)
+ }
+ fmt.Printf("✓ 已生成 migration-plan.json(%d 个文件)\n", len(plan.Migrations))
+
+ if reorgDryRun {
+ fmt.Println("\n[DRY-RUN] 迁移计划已生成,未执行移动")
+ fmt.Println("使用 --execute 执行迁移")
+ return nil
+ }
+
+ if !reorgExecute {
+ fmt.Println("\n警告: 未指定 --execute,迁移未执行")
+ fmt.Println("请检查 migration-plan.json,然后使用 --execute 执行")
+ return nil
+ }
+
+ fmt.Println("\n步骤 3/3: 执行迁移...")
+ if err := classify.ExecuteMigration(vaultPath, plan); err != nil {
+ return fmt.Errorf("执行迁移失败: %w", err)
+ }
+ fmt.Printf("✓ 迁移完成(%d 个文件)\n", len(plan.Migrations))
+
+ return nil
+}
--
Gitblit v1.9.1