|
| 1 | +import { execSync } from "child_process"; |
1 | 2 | import { cpSync, existsSync, rmSync } from "fs"; |
2 | 3 | import { join, resolve } from "path"; |
3 | 4 |
|
4 | 5 | const root = resolve(__dirname, ".."); |
| 6 | +const branch = process.argv[2] || "master"; |
5 | 7 |
|
6 | 8 | const mappings = [ |
7 | 9 | { |
8 | 10 | name: "angular", |
| 11 | + repo: join(root, "packages/igniteui-mcp/igniteui-doc-mcp/angular/igniteui-angular"), |
9 | 12 | src: join(root, "packages/igniteui-mcp/igniteui-doc-mcp/angular/igniteui-angular/skills"), |
10 | 13 | dest: join(root, "packages/igx-templates/igx-ts/projects/_base/files/__dot__claude/skills") |
11 | 14 | }, |
12 | 15 | { |
13 | 16 | name: "react", |
| 17 | + repo: join(root, "packages/igniteui-mcp/igniteui-doc-mcp/react/igniteui-react"), |
14 | 18 | src: join(root, "packages/igniteui-mcp/igniteui-doc-mcp/react/igniteui-react/skills"), |
15 | 19 | dest: join(root, "packages/cli/templates/react/igr-ts/projects/_base/files/__dot__claude/skills") |
16 | 20 | }, |
17 | 21 | { |
18 | 22 | name: "webcomponents", |
| 23 | + repo: join(root, "packages/igniteui-mcp/igniteui-doc-mcp/webcomponents/igniteui-webcomponents"), |
19 | 24 | src: join(root, "packages/igniteui-mcp/igniteui-doc-mcp/webcomponents/igniteui-webcomponents/skills"), |
20 | 25 | dest: join(root, "packages/cli/templates/webcomponents/igc-ts/projects/_base/files/__dot__claude/skills") |
21 | 26 | } |
22 | 27 | ]; |
23 | 28 |
|
24 | | -for (const { name, src, dest } of mappings) { |
| 29 | +for (const { name, repo, src, dest } of mappings) { |
| 30 | + if (!existsSync(repo)) { |
| 31 | + // eslint-disable-next-line no-console |
| 32 | + console.warn(`[update-skills] Skipping ${name}: repo not found at ${repo}`); |
| 33 | + continue; |
| 34 | + } |
| 35 | + // eslint-disable-next-line no-console |
| 36 | + console.log(`[update-skills] Pulling ${name} from branch '${branch}'...`); |
| 37 | + // Abort any in-progress merge left from a previous failed pull |
| 38 | + try { |
| 39 | + execSync("git merge --abort", { cwd: repo, stdio: "pipe" }); |
| 40 | + } catch { |
| 41 | + // No merge in progress — ignore |
| 42 | + } |
| 43 | + execSync(`git pull origin ${branch} --no-edit`, { cwd: repo, stdio: "inherit" }); |
| 44 | + |
25 | 45 | if (!existsSync(src)) { |
26 | 46 | // eslint-disable-next-line no-console |
27 | | - console.warn(`[update-skills] Skipping ${name}: source not found at ${src}`); |
| 47 | + console.warn(`[update-skills] Skipping ${name}: skills not found at ${src}`); |
28 | 48 | continue; |
29 | 49 | } |
30 | 50 | if (existsSync(dest)) { |
|
0 commit comments