proj-track 1.0.0 → 1.0.1
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.
- package/README.md +24 -6
- package/dist/commands/gitignore.d.ts +13 -0
- package/dist/commands/gitignore.d.ts.map +1 -0
- package/dist/commands/gitignore.js +51 -0
- package/dist/commands/gitignore.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +9 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/ui/banner.d.ts +2 -0
- package/dist/ui/banner.d.ts.map +1 -0
- package/dist/ui/banner.js +16 -0
- package/dist/ui/banner.js.map +1 -0
- package/dist/utils/shell-installer.d.ts.map +1 -1
- package/dist/utils/shell-installer.js +26 -0
- package/dist/utils/shell-installer.js.map +1 -1
- package/package.json +1 -1
- package/src/hooks/bash-hook.sh +8 -0
- package/src/hooks/zsh-hook.sh +18 -0
package/README.md
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
<img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="license" />
|
|
14
14
|
<img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="node" />
|
|
15
15
|
<img src="https://img.shields.io/badge/TypeScript-5.x-blue" alt="typescript" />
|
|
16
|
-
<img src="https://img.shields.io/badge/tests-
|
|
17
|
-
<a href="https://codecov.io/gh/Ali-Raza-Arain/proj-track"><img src="https://codecov.io/gh/Ali-Raza-Arain/proj-track/branch/main/graph/badge.svg" alt="codecov" /></a>
|
|
16
|
+
<img src="https://img.shields.io/badge/tests-52%20passed-green" alt="tests" />
|
|
17
|
+
<a href="https://codecov.io/gh/Ali-Raza-Arain/proj-track"><img src="https://codecov.io/gh/Ali-Raza-Arain/proj-track/branch/main/graph/badge.svg?style=for-the-badge" alt="codecov" /></a>
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
20
|
---
|
|
@@ -230,7 +230,12 @@ npm test
|
|
|
230
230
|
|
|
231
231
|
## Contributing
|
|
232
232
|
|
|
233
|
-
|
|
233
|
+
We welcome contributions! Please read the [Contributing Guide](CONTRIBUTING.md) before submitting a PR.
|
|
234
|
+
|
|
235
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
236
|
+
- [Security Policy](SECURITY.md)
|
|
237
|
+
|
|
238
|
+
Look for issues labeled [`good first issue`](https://github.com/Ali-Raza-Arain/proj-track/labels/good%20first%20issue) to get started.
|
|
234
239
|
|
|
235
240
|
---
|
|
236
241
|
|
|
@@ -242,9 +247,22 @@ To report vulnerabilities, please see our [Security Policy](SECURITY.md).
|
|
|
242
247
|
|
|
243
248
|
## Support
|
|
244
249
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
250
|
+
If this package helps you, consider supporting its development:
|
|
251
|
+
|
|
252
|
+
<a href="https://github.com/sponsors/Ali-Raza-Arain">
|
|
253
|
+
<img src="https://img.shields.io/badge/Sponsor_on_GitHub-EA4AAA?style=for-the-badge&logo=github-sponsors&logoColor=white" alt="GitHub Sponsors" />
|
|
254
|
+
</a>
|
|
255
|
+
<a href="https://buymeacoffee.com/alirazaarain">
|
|
256
|
+
<img src="https://img.shields.io/badge/Buy_Me_a_Coffee-FFDD00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black" alt="Buy Me a Coffee" />
|
|
257
|
+
</a>
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Contributors
|
|
262
|
+
|
|
263
|
+
<a href="https://github.com/ali-raza-arain/proj-track/graphs/contributors">
|
|
264
|
+
<img src="https://contrib.rocks/image?repo=ali-raza-arain/proj-track" />
|
|
265
|
+
</a>
|
|
248
266
|
|
|
249
267
|
---
|
|
250
268
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Add proj-track files to .gitignore.
|
|
3
|
+
* Creates the file if it doesn't exist, appends only missing entries.
|
|
4
|
+
*/
|
|
5
|
+
export declare function addToGitignore(dir?: string): {
|
|
6
|
+
added: string[];
|
|
7
|
+
alreadyPresent: string[];
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Standalone gitignore command — adds proj-track files to .gitignore.
|
|
11
|
+
*/
|
|
12
|
+
export declare function gitignoreCommand(): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=gitignore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/commands/gitignore.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CA0B1F;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAWtD"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
const PROJ_TRACK_FILES = [
|
|
5
|
+
'.proj-track.json',
|
|
6
|
+
'.proj-track.json.paused',
|
|
7
|
+
'.proj-track.txt',
|
|
8
|
+
'.proj-track-disabled',
|
|
9
|
+
];
|
|
10
|
+
const HEADER = '# proj-track';
|
|
11
|
+
/**
|
|
12
|
+
* Add proj-track files to .gitignore.
|
|
13
|
+
* Creates the file if it doesn't exist, appends only missing entries.
|
|
14
|
+
*/
|
|
15
|
+
export function addToGitignore(dir) {
|
|
16
|
+
const targetDir = dir || process.cwd();
|
|
17
|
+
const gitignorePath = path.join(targetDir, '.gitignore');
|
|
18
|
+
const existing = fs.existsSync(gitignorePath)
|
|
19
|
+
? fs.readFileSync(gitignorePath, 'utf-8')
|
|
20
|
+
: '';
|
|
21
|
+
const lines = existing.split('\n');
|
|
22
|
+
const added = [];
|
|
23
|
+
const alreadyPresent = [];
|
|
24
|
+
for (const file of PROJ_TRACK_FILES) {
|
|
25
|
+
if (lines.some(line => line.trim() === file)) {
|
|
26
|
+
alreadyPresent.push(file);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
added.push(file);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (added.length > 0) {
|
|
33
|
+
const newEntries = `\n${HEADER}\n${added.join('\n')}\n`;
|
|
34
|
+
fs.appendFileSync(gitignorePath, newEntries, 'utf-8');
|
|
35
|
+
}
|
|
36
|
+
return { added, alreadyPresent };
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Standalone gitignore command — adds proj-track files to .gitignore.
|
|
40
|
+
*/
|
|
41
|
+
export async function gitignoreCommand() {
|
|
42
|
+
const { added, alreadyPresent } = addToGitignore();
|
|
43
|
+
if (added.length > 0) {
|
|
44
|
+
console.log(chalk.green('✓ Added proj-track files to .gitignore:'));
|
|
45
|
+
added.forEach(f => console.log(chalk.dim(` ${f}`)));
|
|
46
|
+
}
|
|
47
|
+
if (alreadyPresent.length === PROJ_TRACK_FILES.length) {
|
|
48
|
+
console.log(chalk.yellow('All proj-track files are already in .gitignore.'));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=gitignore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/commands/gitignore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,gBAAgB,GAAG;IACvB,kBAAkB;IAClB,yBAAyB;IACzB,iBAAiB;IACjB,sBAAsB;CACvB,CAAC;AAEF,MAAM,MAAM,GAAG,cAAc,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,MAAM,SAAS,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;QAC3C,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC;QACzC,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC7C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,KAAK,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACxD,EAAE,CAAC,cAAc,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAAC;IAEnD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACpE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA8DjD"}
|
package/dist/commands/init.js
CHANGED
|
@@ -3,6 +3,7 @@ import path from 'node:path';
|
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import { readHistory, writeHistory } from '../utils/file-handler.js';
|
|
5
5
|
import { installShellFunction, isShellFunctionInstalled } from '../utils/shell-installer.js';
|
|
6
|
+
import { addToGitignore } from './gitignore.js';
|
|
6
7
|
/**
|
|
7
8
|
* Initialize proj-track in the current project.
|
|
8
9
|
* Creates .proj-track.json and installs auto-capture hook if needed.
|
|
@@ -32,6 +33,14 @@ export async function initCommand() {
|
|
|
32
33
|
// Create initial history file
|
|
33
34
|
const history = readHistory();
|
|
34
35
|
writeHistory(history);
|
|
36
|
+
// Auto-add to .gitignore if it exists
|
|
37
|
+
const gitignorePath = path.join(process.cwd(), '.gitignore');
|
|
38
|
+
if (fs.existsSync(gitignorePath)) {
|
|
39
|
+
const { added } = addToGitignore();
|
|
40
|
+
if (added.length > 0) {
|
|
41
|
+
console.log(chalk.green('✓ Added proj-track files to .gitignore'));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
35
44
|
console.log(chalk.green('✓ proj-track initialized in this project.'));
|
|
36
45
|
console.log(chalk.dim(` Created ${configPath}`));
|
|
37
46
|
// Install shell hook if not already installed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,13 +7,16 @@ import { clearCommand } from './commands/clear.js';
|
|
|
7
7
|
import { pauseCommand } from './commands/pause.js';
|
|
8
8
|
import { resumeCommand } from './commands/resume.js';
|
|
9
9
|
import { removeCommand } from './commands/remove.js';
|
|
10
|
+
import { gitignoreCommand } from './commands/gitignore.js';
|
|
10
11
|
import { installShellFunction, uninstallShellFunction } from './utils/shell-installer.js';
|
|
12
|
+
import { getBanner } from './ui/banner.js';
|
|
11
13
|
import chalk from 'chalk';
|
|
12
14
|
const program = new Command();
|
|
13
15
|
program
|
|
14
16
|
.name('proj-track')
|
|
15
17
|
.description('Track CLI command history per-project with zero terminal interference')
|
|
16
|
-
.version('1.0.0')
|
|
18
|
+
.version('1.0.0')
|
|
19
|
+
.addHelpText('beforeAll', getBanner('1.0.0'));
|
|
17
20
|
program
|
|
18
21
|
.command('init')
|
|
19
22
|
.description('Initialize proj-track in the current project')
|
|
@@ -42,6 +45,10 @@ program
|
|
|
42
45
|
.command('remove')
|
|
43
46
|
.description('Remove proj-track from the current project (saves history as .txt)')
|
|
44
47
|
.action(removeCommand);
|
|
48
|
+
program
|
|
49
|
+
.command('gitignore')
|
|
50
|
+
.description('Add proj-track files to .gitignore')
|
|
51
|
+
.action(gitignoreCommand);
|
|
45
52
|
program
|
|
46
53
|
.command('install')
|
|
47
54
|
.description('Install the shell function to .bashrc/.zshrc')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,uEAAuE,CAAC;KACpF,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgBjD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
export function getBanner(version) {
|
|
3
|
+
const title = `proj-track v${version}`;
|
|
4
|
+
const tagline = 'Auto-capture CLI history per-project';
|
|
5
|
+
const contentWidth = 45;
|
|
6
|
+
const padRight = (raw, styled) => {
|
|
7
|
+
return styled + ' '.repeat(Math.max(0, contentWidth - raw.length));
|
|
8
|
+
};
|
|
9
|
+
const top = ` ${chalk.cyan('┌' + '─'.repeat(contentWidth + 2) + '┐')}`;
|
|
10
|
+
const empty = ` ${chalk.cyan('│')} ${' '.repeat(contentWidth)} ${chalk.cyan('│')}`;
|
|
11
|
+
const line1 = ` ${chalk.cyan('│')} ${padRight(title, chalk.bold.white(title))} ${chalk.cyan('│')}`;
|
|
12
|
+
const line2 = ` ${chalk.cyan('│')} ${padRight(tagline, chalk.dim(tagline))} ${chalk.cyan('│')}`;
|
|
13
|
+
const bottom = ` ${chalk.cyan('└' + '─'.repeat(contentWidth + 2) + '┘')}`;
|
|
14
|
+
return `\n${top}\n${empty}\n${line1}\n${line2}\n${empty}\n${bottom}\n`;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,MAAM,KAAK,GAAG,gBAAgB,OAAO,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,sCAAsC,CAAC;IAEvD,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,MAAc,EAAE,EAAE;QAC/C,OAAO,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,MAAM,GAAG,GAAM,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAI,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrF,MAAM,KAAK,GAAI,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACrG,MAAM,KAAK,GAAI,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAClG,MAAM,MAAM,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;IAE3E,OAAO,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,IAAI,CAAC;AACzE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-installer.d.ts","sourceRoot":"","sources":["../../src/utils/shell-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shell-installer.d.ts","sourceRoot":"","sources":["../../src/utils/shell-installer.ts"],"names":[],"mappings":"AAyOA;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CAgB/C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAejD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAGlD"}
|
|
@@ -86,6 +86,14 @@ else
|
|
|
86
86
|
PROMPT_COMMAND='__proj_track_capture'
|
|
87
87
|
fi
|
|
88
88
|
|
|
89
|
+
# Tab completion
|
|
90
|
+
_proj_track_completions() {
|
|
91
|
+
local cur="\${COMP_WORDS[COMP_CWORD]}"
|
|
92
|
+
local commands="init list run clear pause resume remove gitignore install uninstall"
|
|
93
|
+
COMPREPLY=($(compgen -W "$commands" -- "$cur"))
|
|
94
|
+
}
|
|
95
|
+
complete -F _proj_track_completions proj-track
|
|
96
|
+
|
|
89
97
|
alias thistory='proj-track list 2>/dev/null'
|
|
90
98
|
alias trun='proj-track run'
|
|
91
99
|
alias tclear='proj-track clear'
|
|
@@ -129,6 +137,24 @@ __proj_track_preexec() {
|
|
|
129
137
|
autoload -Uz add-zsh-hook
|
|
130
138
|
add-zsh-hook preexec __proj_track_preexec
|
|
131
139
|
|
|
140
|
+
# Tab completion
|
|
141
|
+
_proj_track_completions() {
|
|
142
|
+
local commands=(
|
|
143
|
+
'init:Initialize proj-track in the current project'
|
|
144
|
+
'list:List tracked commands'
|
|
145
|
+
'run:Re-run a tracked command by its ID'
|
|
146
|
+
'clear:Clear command history'
|
|
147
|
+
'pause:Pause tracking in the current project'
|
|
148
|
+
'resume:Resume tracking in the current project'
|
|
149
|
+
'remove:Remove proj-track from the current project'
|
|
150
|
+
'gitignore:Add proj-track files to .gitignore'
|
|
151
|
+
'install:Install the shell function to .bashrc/.zshrc'
|
|
152
|
+
'uninstall:Remove the shell function from .bashrc/.zshrc'
|
|
153
|
+
)
|
|
154
|
+
_describe 'command' commands
|
|
155
|
+
}
|
|
156
|
+
compdef _proj_track_completions proj-track 2>/dev/null
|
|
157
|
+
|
|
132
158
|
alias thistory='proj-track list 2>/dev/null'
|
|
133
159
|
alias trun='proj-track run'
|
|
134
160
|
alias tclear='proj-track clear'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-installer.js","sourceRoot":"","sources":["../../src/utils/shell-installer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,YAAY,GAAG,iCAAiC,CAAC;AACvD,MAAM,UAAU,GAAG,+BAA+B,CAAC;AAEnD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C;;GAEG;AACH,SAAS,WAAW;IAClB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,eAAe;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;IAC/D,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAExC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAqB;IAC3C,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC;IAEzD,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,GAAG,YAAY
|
|
1
|
+
{"version":3,"file":"shell-installer.js","sourceRoot":"","sources":["../../src/utils/shell-installer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/hooks/bash-hook.sh
CHANGED
|
@@ -56,6 +56,14 @@ else
|
|
|
56
56
|
PROMPT_COMMAND='__proj_track_capture'
|
|
57
57
|
fi
|
|
58
58
|
|
|
59
|
+
# Tab completion
|
|
60
|
+
_proj_track_completions() {
|
|
61
|
+
local cur="${COMP_WORDS[COMP_CWORD]}"
|
|
62
|
+
local commands="init list run clear pause resume remove gitignore install uninstall"
|
|
63
|
+
COMPREPLY=($(compgen -W "$commands" -- "$cur"))
|
|
64
|
+
}
|
|
65
|
+
complete -F _proj_track_completions proj-track
|
|
66
|
+
|
|
59
67
|
# Convenience aliases (manual commands still available)
|
|
60
68
|
alias thistory='proj-track list 2>/dev/null'
|
|
61
69
|
alias trun='proj-track run'
|
package/src/hooks/zsh-hook.sh
CHANGED
|
@@ -43,6 +43,24 @@ __proj_track_preexec() {
|
|
|
43
43
|
autoload -Uz add-zsh-hook
|
|
44
44
|
add-zsh-hook preexec __proj_track_preexec
|
|
45
45
|
|
|
46
|
+
# Tab completion
|
|
47
|
+
_proj_track_completions() {
|
|
48
|
+
local commands=(
|
|
49
|
+
'init:Initialize proj-track in the current project'
|
|
50
|
+
'list:List tracked commands'
|
|
51
|
+
'run:Re-run a tracked command by its ID'
|
|
52
|
+
'clear:Clear command history'
|
|
53
|
+
'pause:Pause tracking in the current project'
|
|
54
|
+
'resume:Resume tracking in the current project'
|
|
55
|
+
'remove:Remove proj-track from the current project'
|
|
56
|
+
'gitignore:Add proj-track files to .gitignore'
|
|
57
|
+
'install:Install the shell function to .bashrc/.zshrc'
|
|
58
|
+
'uninstall:Remove the shell function from .bashrc/.zshrc'
|
|
59
|
+
)
|
|
60
|
+
_describe 'command' commands
|
|
61
|
+
}
|
|
62
|
+
compdef _proj_track_completions proj-track 2>/dev/null
|
|
63
|
+
|
|
46
64
|
# Convenience aliases
|
|
47
65
|
alias thistory='proj-track list 2>/dev/null'
|
|
48
66
|
alias trun='proj-track run'
|