sync-worktrees 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +66 -2
  2. package/dist/__tests__/integration.test.js +56 -3
  3. package/dist/__tests__/integration.test.js.map +1 -1
  4. package/dist/index.js +133 -9
  5. package/dist/index.js.map +1 -1
  6. package/dist/services/__tests__/config-loader.service.test.d.ts +2 -0
  7. package/dist/services/__tests__/config-loader.service.test.d.ts.map +1 -0
  8. package/dist/services/__tests__/config-loader.service.test.js +222 -0
  9. package/dist/services/__tests__/config-loader.service.test.js.map +1 -0
  10. package/dist/services/__tests__/git.service.test.js +56 -0
  11. package/dist/services/__tests__/git.service.test.js.map +1 -1
  12. package/dist/services/__tests__/worktree-sync.service.test.js +88 -10
  13. package/dist/services/__tests__/worktree-sync.service.test.js.map +1 -1
  14. package/dist/services/config-loader.service.d.ts +9 -0
  15. package/dist/services/config-loader.service.d.ts.map +1 -0
  16. package/dist/services/config-loader.service.js +151 -0
  17. package/dist/services/config-loader.service.js.map +1 -0
  18. package/dist/services/git.service.d.ts +5 -0
  19. package/dist/services/git.service.d.ts.map +1 -1
  20. package/dist/services/git.service.js +31 -0
  21. package/dist/services/git.service.js.map +1 -1
  22. package/dist/services/worktree-sync.service.d.ts +1 -0
  23. package/dist/services/worktree-sync.service.d.ts.map +1 -1
  24. package/dist/services/worktree-sync.service.js +41 -8
  25. package/dist/services/worktree-sync.service.js.map +1 -1
  26. package/dist/types/index.d.ts +7 -0
  27. package/dist/types/index.d.ts.map +1 -1
  28. package/dist/utils/__tests__/config-generator.test.d.ts +2 -0
  29. package/dist/utils/__tests__/config-generator.test.d.ts.map +1 -0
  30. package/dist/utils/__tests__/config-generator.test.js +142 -0
  31. package/dist/utils/__tests__/config-generator.test.js.map +1 -0
  32. package/dist/utils/__tests__/interactive.test.js +50 -1
  33. package/dist/utils/__tests__/interactive.test.js.map +1 -1
  34. package/dist/utils/cli.d.ts +6 -1
  35. package/dist/utils/cli.d.ts.map +1 -1
  36. package/dist/utils/cli.js +19 -0
  37. package/dist/utils/cli.js.map +1 -1
  38. package/dist/utils/config-generator.d.ts +4 -0
  39. package/dist/utils/config-generator.d.ts.map +1 -0
  40. package/dist/utils/config-generator.js +77 -0
  41. package/dist/utils/config-generator.js.map +1 -0
  42. package/dist/utils/interactive.d.ts.map +1 -1
  43. package/dist/utils/interactive.js +35 -0
  44. package/dist/utils/interactive.js.map +1 -1
  45. package/package.json +1 -1
@@ -55,10 +55,15 @@ class WorktreeSyncService {
55
55
  const remoteBranches = await this.gitService.getRemoteBranches();
56
56
  console.log(`Found ${remoteBranches.length} remote branches.`);
57
57
  await fs.mkdir(this.config.worktreeDir, { recursive: true });
58
- const worktreeDirs = await fs.readdir(this.config.worktreeDir);
59
- console.log(`Found ${worktreeDirs.length} existing worktree directories.`);
60
- await this.createNewWorktrees(remoteBranches, worktreeDirs);
61
- await this.pruneOldWorktrees(remoteBranches, worktreeDirs);
58
+ // Get actual Git worktrees instead of just directories
59
+ const worktrees = await this.gitService.getWorktrees();
60
+ const worktreeBranches = worktrees.map((w) => w.branch);
61
+ console.log(`Found ${worktrees.length} existing Git worktrees.`);
62
+ // Clean up orphaned directories
63
+ await this.cleanupOrphanedDirectories(worktrees);
64
+ const currentBranch = await this.gitService.getCurrentBranch();
65
+ await this.createNewWorktrees(remoteBranches, worktreeBranches, currentBranch);
66
+ await this.pruneOldWorktrees(remoteBranches, worktreeBranches);
62
67
  await this.gitService.pruneWorktrees();
63
68
  console.log("Step 4: Pruned worktree metadata.");
64
69
  }
@@ -70,8 +75,10 @@ class WorktreeSyncService {
70
75
  console.log(`[${new Date().toISOString()}] Synchronization finished.\n`);
71
76
  }
72
77
  }
73
- async createNewWorktrees(remoteBranches, worktreeDirs) {
74
- const newBranches = remoteBranches.filter((b) => !worktreeDirs.includes(b));
78
+ async createNewWorktrees(remoteBranches, existingWorktreeBranches, currentBranch) {
79
+ const newBranches = remoteBranches
80
+ .filter((b) => !existingWorktreeBranches.includes(b))
81
+ .filter((b) => b !== currentBranch);
75
82
  if (newBranches.length > 0) {
76
83
  console.log(`Step 2: Creating new worktrees for: ${newBranches.join(", ")}`);
77
84
  for (const branchName of newBranches) {
@@ -83,8 +90,8 @@ class WorktreeSyncService {
83
90
  console.log("Step 2: No new branches to create worktrees for.");
84
91
  }
85
92
  }
86
- async pruneOldWorktrees(remoteBranches, worktreeDirs) {
87
- const deletedBranches = worktreeDirs.filter((dir) => !remoteBranches.includes(dir));
93
+ async pruneOldWorktrees(remoteBranches, existingWorktreeBranches) {
94
+ const deletedBranches = existingWorktreeBranches.filter((branch) => !remoteBranches.includes(branch));
88
95
  if (deletedBranches.length > 0) {
89
96
  console.log(`Step 3: Checking for stale worktrees to prune: ${deletedBranches.join(", ")}`);
90
97
  for (const branchName of deletedBranches) {
@@ -113,6 +120,32 @@ class WorktreeSyncService {
113
120
  console.log("Step 3: No stale worktrees to prune.");
114
121
  }
115
122
  }
123
+ async cleanupOrphanedDirectories(worktrees) {
124
+ try {
125
+ const worktreePaths = worktrees.map((w) => path.basename(w.path));
126
+ const allDirs = await fs.readdir(this.config.worktreeDir);
127
+ const orphanedDirs = allDirs.filter((dir) => !worktreePaths.includes(dir));
128
+ if (orphanedDirs.length > 0) {
129
+ console.log(`Found ${orphanedDirs.length} orphaned directories: ${orphanedDirs.join(", ")}`);
130
+ for (const dir of orphanedDirs) {
131
+ const dirPath = path.join(this.config.worktreeDir, dir);
132
+ try {
133
+ const stat = await fs.stat(dirPath);
134
+ if (stat.isDirectory()) {
135
+ await fs.rm(dirPath, { recursive: true, force: true });
136
+ console.log(` - Removed orphaned directory: ${dir}`);
137
+ }
138
+ }
139
+ catch (error) {
140
+ console.error(` - Failed to remove orphaned directory ${dir}:`, error);
141
+ }
142
+ }
143
+ }
144
+ }
145
+ catch (error) {
146
+ console.error("Error during orphaned directory cleanup:", error);
147
+ }
148
+ }
116
149
  }
117
150
  exports.WorktreeSyncService = WorktreeSyncService;
118
151
  //# sourceMappingURL=worktree-sync.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-sync.service.js","sourceRoot":"","sources":["../../src/services/worktree-sync.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-sync.service.js","sourceRoot":"","sources":["../../src/services/worktree-sync.service.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,13 @@ export interface Config {
5
5
  cronSchedule: string;
6
6
  runOnce: boolean;
7
7
  }
8
+ export interface RepositoryConfig extends Config {
9
+ name: string;
10
+ }
11
+ export interface ConfigFile {
12
+ defaults?: Partial<Config>;
13
+ repositories: RepositoryConfig[];
14
+ }
8
15
  export interface WorktreeStatus {
9
16
  branchName: string;
10
17
  worktreePath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CAC1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,MAAM;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,YAAY,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config-generator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-generator.test.d.ts","sourceRoot":"","sources":["../../../src/utils/__tests__/config-generator.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const fs = __importStar(require("fs/promises"));
37
+ const path = __importStar(require("path"));
38
+ const globals_1 = require("@jest/globals");
39
+ const config_generator_1 = require("../config-generator");
40
+ (0, globals_1.describe)("Config Generator", () => {
41
+ let tempDir;
42
+ (0, globals_1.beforeEach)(async () => {
43
+ tempDir = await fs.mkdtemp(path.join(process.cwd(), "test-config-gen-"));
44
+ });
45
+ afterEach(async () => {
46
+ await fs.rm(tempDir, { recursive: true, force: true });
47
+ });
48
+ (0, globals_1.describe)("generateConfigFile", () => {
49
+ (0, globals_1.it)("should generate a basic config file", async () => {
50
+ const config = {
51
+ repoPath: "/absolute/path/to/repo",
52
+ worktreeDir: "/absolute/path/to/worktrees",
53
+ cronSchedule: "0 * * * *",
54
+ runOnce: false,
55
+ };
56
+ const configPath = path.join(tempDir, "test.config.js");
57
+ await (0, config_generator_1.generateConfigFile)(config, configPath);
58
+ const content = await fs.readFile(configPath, "utf-8");
59
+ (0, globals_1.expect)(content).toContain('name: "repo"');
60
+ (0, globals_1.expect)(content).toContain('repoPath: "/absolute/path/to/repo"');
61
+ (0, globals_1.expect)(content).toContain('worktreeDir: "/absolute/path/to/worktrees"');
62
+ (0, globals_1.expect)(content).toContain('cronSchedule: "0 * * * *"');
63
+ (0, globals_1.expect)(content).toContain("runOnce: false");
64
+ });
65
+ (0, globals_1.it)("should include repoUrl when provided", async () => {
66
+ const config = {
67
+ repoPath: "/path/to/repo",
68
+ repoUrl: "https://github.com/user/repo.git",
69
+ worktreeDir: "/path/to/worktrees",
70
+ cronSchedule: "*/30 * * * *",
71
+ runOnce: true,
72
+ };
73
+ const configPath = path.join(tempDir, "test.config.js");
74
+ await (0, config_generator_1.generateConfigFile)(config, configPath);
75
+ const content = await fs.readFile(configPath, "utf-8");
76
+ (0, globals_1.expect)(content).toContain('repoUrl: "https://github.com/user/repo.git"');
77
+ (0, globals_1.expect)(content).toContain('cronSchedule: "*/30 * * * *"');
78
+ (0, globals_1.expect)(content).toContain("runOnce: true");
79
+ });
80
+ (0, globals_1.it)("should use relative paths when appropriate", async () => {
81
+ const config = {
82
+ repoPath: path.join(tempDir, "repo"),
83
+ worktreeDir: path.join(tempDir, "worktrees"),
84
+ cronSchedule: "0 * * * *",
85
+ runOnce: false,
86
+ };
87
+ const configPath = path.join(tempDir, "config.js");
88
+ await (0, config_generator_1.generateConfigFile)(config, configPath);
89
+ const content = await fs.readFile(configPath, "utf-8");
90
+ (0, globals_1.expect)(content).toContain('repoPath: "./repo"');
91
+ (0, globals_1.expect)(content).toContain('worktreeDir: "./worktrees"');
92
+ });
93
+ (0, globals_1.it)("should use absolute paths for deeply nested relative paths", async () => {
94
+ const config = {
95
+ repoPath: "/very/deeply/nested/path/to/repo",
96
+ worktreeDir: path.join(tempDir, "worktrees"),
97
+ cronSchedule: "0 * * * *",
98
+ runOnce: false,
99
+ };
100
+ const configPath = path.join(tempDir, "sub/dir/config.js");
101
+ await fs.mkdir(path.dirname(configPath), { recursive: true });
102
+ await (0, config_generator_1.generateConfigFile)(config, configPath);
103
+ const content = await fs.readFile(configPath, "utf-8");
104
+ (0, globals_1.expect)(content).toContain('repoPath: "/very/deeply/nested/path/to/repo"');
105
+ });
106
+ (0, globals_1.it)("should create parent directories if they don't exist", async () => {
107
+ const config = {
108
+ repoPath: "/path/to/repo",
109
+ worktreeDir: "/path/to/worktrees",
110
+ cronSchedule: "0 * * * *",
111
+ runOnce: false,
112
+ };
113
+ const configPath = path.join(tempDir, "nested/dir/config.js");
114
+ await (0, config_generator_1.generateConfigFile)(config, configPath);
115
+ const exists = await fs
116
+ .access(configPath)
117
+ .then(() => true)
118
+ .catch(() => false);
119
+ (0, globals_1.expect)(exists).toBe(true);
120
+ });
121
+ (0, globals_1.it)("should include a timestamp in the generated file", async () => {
122
+ const config = {
123
+ repoPath: "/path/to/repo",
124
+ worktreeDir: "/path/to/worktrees",
125
+ cronSchedule: "0 * * * *",
126
+ runOnce: false,
127
+ };
128
+ const configPath = path.join(tempDir, "test.config.js");
129
+ await (0, config_generator_1.generateConfigFile)(config, configPath);
130
+ const content = await fs.readFile(configPath, "utf-8");
131
+ (0, globals_1.expect)(content).toMatch(/Generated on \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/);
132
+ });
133
+ });
134
+ (0, globals_1.describe)("getDefaultConfigPath", () => {
135
+ (0, globals_1.it)("should return sync-worktrees.config.js in current directory", () => {
136
+ const configPath = (0, config_generator_1.getDefaultConfigPath)();
137
+ (0, globals_1.expect)(path.basename(configPath)).toBe("sync-worktrees.config.js");
138
+ (0, globals_1.expect)(path.dirname(configPath)).toBe(process.cwd());
139
+ });
140
+ });
141
+ });
142
+ //# sourceMappingURL=config-generator.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-generator.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/config-generator.test.ts"],"names":[],"mappings":"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"}
@@ -43,15 +43,25 @@ globals_1.jest.mock("fs");
43
43
  globals_1.jest.mock("@inquirer/prompts", () => ({
44
44
  input: globals_1.jest.fn(),
45
45
  select: globals_1.jest.fn(),
46
+ confirm: globals_1.jest.fn(),
47
+ }));
48
+ // Mock the config generator
49
+ globals_1.jest.mock("../config-generator", () => ({
50
+ generateConfigFile: globals_1.jest.fn(),
51
+ getDefaultConfigPath: globals_1.jest.fn(() => "/default/config.js"),
46
52
  }));
47
53
  (0, globals_1.describe)("Interactive prompt utility", () => {
48
54
  const mockExistsSync = globals_1.jest.mocked(fs.existsSync);
49
55
  // Get the mocked functions with proper typing
50
- const { input, select } = globals_1.jest.requireMock("@inquirer/prompts");
56
+ const { input, select, confirm } = globals_1.jest.requireMock("@inquirer/prompts");
57
+ const { generateConfigFile } = globals_1.jest.requireMock("../config-generator");
51
58
  (0, globals_1.beforeEach)(() => {
52
59
  globals_1.jest.clearAllMocks();
53
60
  globals_1.jest.spyOn(console, "log").mockImplementation(() => { });
61
+ globals_1.jest.spyOn(console, "error").mockImplementation(() => { });
54
62
  mockExistsSync.mockReturnValue(true);
63
+ // Default to not saving config in tests
64
+ confirm.mockResolvedValue(false);
55
65
  });
56
66
  (0, globals_1.afterEach)(() => {
57
67
  globals_1.jest.restoreAllMocks();
@@ -227,6 +237,45 @@ globals_1.jest.mock("@inquirer/prompts", () => ({
227
237
  runOnce: false,
228
238
  });
229
239
  });
240
+ (0, globals_1.it)("should prompt to save config file", async () => {
241
+ confirm.mockResolvedValueOnce(true); // saveConfig
242
+ input
243
+ .mockResolvedValueOnce("/repo") // repoPath
244
+ .mockResolvedValueOnce("/worktrees") // worktreeDir
245
+ .mockResolvedValueOnce("/custom/config.js"); // configPath
246
+ select.mockResolvedValueOnce("once"); // runMode
247
+ await (0, interactive_1.promptForConfig)({});
248
+ (0, globals_1.expect)(confirm).toHaveBeenCalledWith({
249
+ message: "Would you like to save this configuration to a file for future use?",
250
+ default: true,
251
+ });
252
+ (0, globals_1.expect)(input).toHaveBeenCalledWith(globals_1.expect.objectContaining({
253
+ message: "Enter the path for the config file:",
254
+ default: "/default/config.js",
255
+ }));
256
+ (0, globals_1.expect)(generateConfigFile).toHaveBeenCalledWith(globals_1.expect.objectContaining({
257
+ repoPath: "/repo",
258
+ worktreeDir: "/worktrees",
259
+ }), "/custom/config.js");
260
+ });
261
+ (0, globals_1.it)("should handle config file save errors", async () => {
262
+ confirm.mockResolvedValueOnce(true); // saveConfig
263
+ generateConfigFile.mockRejectedValueOnce(new Error("Write failed"));
264
+ input
265
+ .mockResolvedValueOnce("/repo") // repoPath
266
+ .mockResolvedValueOnce("/worktrees") // worktreeDir
267
+ .mockResolvedValueOnce("/custom/config.js"); // configPath
268
+ select.mockResolvedValueOnce("once"); // runMode
269
+ const result = await (0, interactive_1.promptForConfig)({});
270
+ (0, globals_1.expect)(generateConfigFile).toHaveBeenCalled();
271
+ (0, globals_1.expect)(result).toEqual({
272
+ repoPath: "/repo",
273
+ worktreeDir: "/worktrees",
274
+ cronSchedule: "0 * * * *",
275
+ runOnce: true,
276
+ repoUrl: undefined,
277
+ });
278
+ });
230
279
  });
231
280
  });
232
281
  //# sourceMappingURL=interactive.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/interactive.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/interactive.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  import type { Config } from "../types";
2
- export declare function parseArguments(): Partial<Config>;
2
+ export interface CliOptions extends Partial<Config> {
3
+ config?: string;
4
+ filter?: string;
5
+ list?: boolean;
6
+ }
7
+ export declare function parseArguments(): CliOptions;
3
8
  export declare function isInteractiveMode(config: Partial<Config>): boolean;
4
9
  export declare function reconstructCliCommand(config: Config): string;
5
10
  //# sourceMappingURL=cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAgB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAuChD;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAElE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA0B5D"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,MAAM,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,cAAc,IAAI,UAAU,CA0D3C;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAElE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA0B5D"}
package/dist/utils/cli.js CHANGED
@@ -10,6 +10,22 @@ const yargs_1 = __importDefault(require("yargs"));
10
10
  const helpers_1 = require("yargs/helpers");
11
11
  function parseArguments() {
12
12
  const argv = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
13
+ .option("config", {
14
+ alias: "c",
15
+ type: "string",
16
+ description: "Path to JavaScript config file",
17
+ })
18
+ .option("filter", {
19
+ alias: "f",
20
+ type: "string",
21
+ description: "Filter repositories by name (supports wildcards and comma-separated values)",
22
+ })
23
+ .option("list", {
24
+ alias: "l",
25
+ type: "boolean",
26
+ description: "List configured repositories and exit",
27
+ default: false,
28
+ })
13
29
  .option("repoPath", {
14
30
  alias: "r",
15
31
  type: "string",
@@ -40,6 +56,9 @@ function parseArguments() {
40
56
  .alias("help", "h")
41
57
  .parseSync();
42
58
  return {
59
+ config: argv.config,
60
+ filter: argv.filter,
61
+ list: argv.list,
43
62
  repoPath: argv.repoPath,
44
63
  repoUrl: argv.repoUrl,
45
64
  worktreeDir: argv.worktreeDir,
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":";;;;;AAKA,wCAuCC;AAED,8CAEC;AAED,sDA0BC;AA5ED,kDAA0B;AAC1B,2CAAwC;AAIxC,SAAgB,cAAc;IAC5B,MAAM,IAAI,GAAG,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SACtC,MAAM,CAAC,UAAU,EAAE;QAClB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,yDAAyD;KACvE,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oFAAoF;KAClG,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uDAAuD;KACrE,CAAC;SACD,MAAM,CAAC,cAAc,EAAE;QACtB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8CAA8C;QAC3D,OAAO,EAAE,WAAW;KACrB,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,8DAA8D;QAC3E,OAAO,EAAE,KAAK;KACf,CAAC;SACD,IAAI,EAAE;SACN,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;SAClB,SAAS,EAAE,CAAC;IAEf,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC;AAED,SAAgB,iBAAiB,CAAC,MAAuB;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AACjD,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAc;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAEnG,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,WAAW,EAAE,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Config } from "../types";
2
+ export declare function generateConfigFile(config: Config, configPath: string): Promise<void>;
3
+ export declare function getDefaultConfigPath(): string;
4
+ //# sourceMappingURL=config-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-generator.d.ts","sourceRoot":"","sources":["../../src/utils/config-generator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC1F;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.generateConfigFile = generateConfigFile;
37
+ exports.getDefaultConfigPath = getDefaultConfigPath;
38
+ const fs = __importStar(require("fs/promises"));
39
+ const path = __importStar(require("path"));
40
+ async function generateConfigFile(config, configPath) {
41
+ const configDir = path.dirname(configPath);
42
+ await fs.mkdir(configDir, { recursive: true });
43
+ // Calculate relative paths from config file location
44
+ const repoPathRelative = path.relative(configDir, config.repoPath);
45
+ const worktreeDirRelative = path.relative(configDir, config.worktreeDir);
46
+ // Use relative paths if they don't go up too many levels
47
+ const useRelativeRepo = !repoPathRelative.startsWith("../../../");
48
+ const useRelativeWorktree = !worktreeDirRelative.startsWith("../../../");
49
+ const repoUrlEntry = config.repoUrl ? `repoUrl: "${config.repoUrl}",\n ` : "";
50
+ const repoPathEntry = `repoPath: "${useRelativeRepo ? `./${repoPathRelative}` : config.repoPath}"`;
51
+ const worktreeDirEntry = `worktreeDir: "${useRelativeWorktree ? `./${worktreeDirRelative}` : config.worktreeDir}"`;
52
+ const configContent = `/**
53
+ * Sync-worktrees configuration file
54
+ * Generated on ${new Date().toISOString()}
55
+ */
56
+
57
+ module.exports = {
58
+ defaults: {
59
+ cronSchedule: "${config.cronSchedule}",
60
+ runOnce: ${config.runOnce}
61
+ },
62
+
63
+ repositories: [
64
+ {
65
+ name: "${path.basename(config.repoPath)}",
66
+ ${repoUrlEntry}${repoPathEntry},
67
+ ${worktreeDirEntry}
68
+ }
69
+ ]
70
+ };
71
+ `;
72
+ await fs.writeFile(configPath, configContent, "utf-8");
73
+ }
74
+ function getDefaultConfigPath() {
75
+ return path.join(process.cwd(), "sync-worktrees.config.js");
76
+ }
77
+ //# sourceMappingURL=config-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-generator.js","sourceRoot":"","sources":["../../src/utils/config-generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,gDAsCC;AAED,oDAEC;AA/CD,gDAAkC;AAClC,2CAA6B;AAItB,KAAK,UAAU,kBAAkB,CAAC,MAAc,EAAE,UAAkB;IACzE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,qDAAqD;IACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAEzE,yDAAyD;IACzD,MAAM,eAAe,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,mBAAmB,GAAG,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEzE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,MAAM,aAAa,GAAG,cAAc,eAAe,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC;IACnG,MAAM,gBAAgB,GAAG,iBAAiB,mBAAmB,CAAC,CAAC,CAAC,KAAK,mBAAmB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC;IAEnH,MAAM,aAAa,GAAG;;kBAEN,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;;;qBAKrB,MAAM,CAAC,YAAY;eACzB,MAAM,CAAC,OAAO;;;;;eAKd,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;QACrC,YAAY,GAAG,aAAa;QAC5B,gBAAgB;;;;CAIvB,CAAC;IAEA,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,0BAA0B,CAAC,CAAC;AAC9D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/utils/interactive.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAsB,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAsGrF"}
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/utils/interactive.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,wBAAsB,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CA2IrF"}
@@ -37,6 +37,7 @@ exports.promptForConfig = promptForConfig;
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  const prompts_1 = require("@inquirer/prompts");
40
+ const config_generator_1 = require("./config-generator");
40
41
  async function promptForConfig(partialConfig) {
41
42
  console.log("šŸ”§ Welcome to sync-worktrees interactive setup!\n");
42
43
  let repoPath = partialConfig.repoPath;
@@ -130,6 +131,40 @@ async function promptForConfig(partialConfig) {
130
131
  console.log(` Mode: Scheduled (${finalConfig.cronSchedule})`);
131
132
  }
132
133
  console.log("");
134
+ // Ask if user wants to save configuration to a file
135
+ const saveConfig = await (0, prompts_1.confirm)({
136
+ message: "Would you like to save this configuration to a file for future use?",
137
+ default: true,
138
+ });
139
+ if (saveConfig) {
140
+ const defaultConfigPath = (0, config_generator_1.getDefaultConfigPath)();
141
+ let configPath = await (0, prompts_1.input)({
142
+ message: "Enter the path for the config file:",
143
+ default: defaultConfigPath,
144
+ validate: (value) => {
145
+ if (!value.trim()) {
146
+ return "Config file path is required";
147
+ }
148
+ if (!value.endsWith(".js")) {
149
+ return "Config file must have a .js extension";
150
+ }
151
+ return true;
152
+ },
153
+ });
154
+ if (!path.isAbsolute(configPath)) {
155
+ configPath = path.resolve(configPath);
156
+ }
157
+ try {
158
+ await (0, config_generator_1.generateConfigFile)(finalConfig, configPath);
159
+ console.log(`\nāœ… Configuration saved to: ${configPath}`);
160
+ console.log(`\nšŸ’” You can now use this config file with:`);
161
+ console.log(` sync-worktrees --config ${path.relative(process.cwd(), configPath)}`);
162
+ console.log("");
163
+ }
164
+ catch (error) {
165
+ console.error(`\nāŒ Failed to save config file: ${error.message}`);
166
+ }
167
+ }
133
168
  return finalConfig;
134
169
  }
135
170
  //# sourceMappingURL=interactive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/utils/interactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/utils/interactive.ts"],"names":[],"mappings":"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"}