@hekonsek/scriptz 0.8.0 → 0.10.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.
- package/dist/{cli → adapters/in/cli}/cli.d.ts +2 -1
- package/dist/{cli → adapters/in/cli}/cli.js +9 -15
- package/dist/adapters/in/cli/cli.js.map +1 -0
- package/dist/services/shell-prompt/shell-prompt.service.d.ts +4 -0
- package/dist/{core/shell-prompt.js → services/shell-prompt/shell-prompt.service.js} +7 -2
- package/dist/services/shell-prompt/shell-prompt.service.js.map +1 -0
- package/dist/services/terminal-scripts/adapters/out/file-system-terminal-scripts-store.d.ts +10 -0
- package/dist/services/terminal-scripts/adapters/out/file-system-terminal-scripts-store.js +38 -0
- package/dist/services/terminal-scripts/adapters/out/file-system-terminal-scripts-store.js.map +1 -0
- package/dist/services/terminal-scripts/adapters/out/script-process-runner.d.ts +4 -0
- package/dist/services/terminal-scripts/adapters/out/script-process-runner.js +22 -0
- package/dist/services/terminal-scripts/adapters/out/script-process-runner.js.map +1 -0
- package/dist/services/terminal-scripts/terminal-scripts-listener.js.map +1 -0
- package/dist/{core/terminal-scripts.d.ts → services/terminal-scripts/terminal-scripts.service.d.ts} +14 -5
- package/dist/{core/terminal-scripts.js → services/terminal-scripts/terminal-scripts.service.js} +14 -45
- package/dist/services/terminal-scripts/terminal-scripts.service.js.map +1 -0
- package/dist/services/version/version.service.d.ts +3 -0
- package/dist/services/version/version.service.js +7 -0
- package/dist/services/version/version.service.js.map +1 -0
- package/package.json +3 -3
- package/dist/cli/cli.js.map +0 -1
- package/dist/core/shell-prompt.d.ts +0 -1
- package/dist/core/shell-prompt.js.map +0 -1
- package/dist/core/terminal-scripts-listener.js.map +0 -1
- package/dist/core/terminal-scripts.js.map +0 -1
- /package/dist/{core → services/terminal-scripts}/terminal-scripts-listener.d.ts +0 -0
- /package/dist/{core → services/terminal-scripts}/terminal-scripts-listener.js +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from "commander";
|
|
3
|
+
import { VersionService } from "../../../services/version/version.service.js";
|
|
3
4
|
export interface CliDependencies {
|
|
4
5
|
readonly homeDirectory: string;
|
|
5
6
|
readonly writeOut: (line: string) => void;
|
|
6
7
|
readonly writeErr: (line: string) => void;
|
|
7
8
|
readonly setExitCode: (code: number) => void;
|
|
8
|
-
|
|
9
|
+
readonly versionService: Pick<VersionService, "packageVersion">;
|
|
9
10
|
}
|
|
10
11
|
export declare function createCli(deps?: CliDependencies): Command;
|
|
11
12
|
export declare function runCli(argv?: string[]): Promise<void>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { readFile } from "node:fs/promises";
|
|
3
2
|
import { homedir } from "node:os";
|
|
4
3
|
import { join } from "node:path";
|
|
5
4
|
import chalk from "chalk";
|
|
6
5
|
import { Command } from "commander";
|
|
7
|
-
import { ScriptCommandNotFoundError,
|
|
8
|
-
import {
|
|
6
|
+
import { ScriptCommandNotFoundError, TerminalScriptsService, } from "../../../services/terminal-scripts/terminal-scripts.service.js";
|
|
7
|
+
import { ShellPromptService } from "../../../services/shell-prompt/shell-prompt.service.js";
|
|
8
|
+
import { VersionService } from "../../../services/version/version.service.js";
|
|
9
9
|
const defaultDependencies = {
|
|
10
10
|
homeDirectory: homedir(),
|
|
11
11
|
writeOut: (line) => {
|
|
@@ -17,7 +17,7 @@ const defaultDependencies = {
|
|
|
17
17
|
setExitCode: (code) => {
|
|
18
18
|
process.exitCode = code;
|
|
19
19
|
},
|
|
20
|
-
|
|
20
|
+
versionService: new VersionService(),
|
|
21
21
|
};
|
|
22
22
|
export function createCli(deps = defaultDependencies) {
|
|
23
23
|
const program = new Command();
|
|
@@ -28,14 +28,14 @@ export function createCli(deps = defaultDependencies) {
|
|
|
28
28
|
program
|
|
29
29
|
.command("version")
|
|
30
30
|
.description("Display the installed package version.")
|
|
31
|
-
.action(
|
|
32
|
-
deps.writeOut(
|
|
31
|
+
.action(() => {
|
|
32
|
+
deps.writeOut(deps.versionService.packageVersion());
|
|
33
33
|
});
|
|
34
34
|
program
|
|
35
35
|
.command("record")
|
|
36
36
|
.description("Start a script(1) recording session.")
|
|
37
37
|
.action(async () => {
|
|
38
|
-
const scripts = new
|
|
38
|
+
const scripts = new TerminalScriptsService(join(deps.homeDirectory, ".cache", "script"));
|
|
39
39
|
try {
|
|
40
40
|
deps.setExitCode(await scripts.record());
|
|
41
41
|
}
|
|
@@ -52,7 +52,7 @@ export function createCli(deps = defaultDependencies) {
|
|
|
52
52
|
.command("prompt")
|
|
53
53
|
.description("Print a Bash prompt assignment with a random terminal title.")
|
|
54
54
|
.action(() => {
|
|
55
|
-
deps.writeOut(
|
|
55
|
+
deps.writeOut(new ShellPromptService().buildAssignment());
|
|
56
56
|
});
|
|
57
57
|
program
|
|
58
58
|
.command("clean")
|
|
@@ -60,7 +60,7 @@ export function createCli(deps = defaultDependencies) {
|
|
|
60
60
|
.option("-q, --quiet", "Suppress command output.", false)
|
|
61
61
|
.action(async (options) => {
|
|
62
62
|
const listener = buildCleanListener(options.quiet, deps);
|
|
63
|
-
const scripts = new
|
|
63
|
+
const scripts = new TerminalScriptsService(join(deps.homeDirectory, ".cache", "script"), listener);
|
|
64
64
|
const result = await scripts.clean(15);
|
|
65
65
|
if (options.quiet) {
|
|
66
66
|
return;
|
|
@@ -85,12 +85,6 @@ export async function runCli(argv = process.argv) {
|
|
|
85
85
|
}
|
|
86
86
|
await program.parseAsync(argv);
|
|
87
87
|
}
|
|
88
|
-
async function readVersion() {
|
|
89
|
-
const packageJsonPath = new URL("../../package.json", import.meta.url);
|
|
90
|
-
const packageJsonRaw = await readFile(packageJsonPath, "utf8");
|
|
91
|
-
const packageJson = JSON.parse(packageJsonRaw);
|
|
92
|
-
return packageJson.version ?? "0.0.0";
|
|
93
|
-
}
|
|
94
88
|
function buildCleanListener(quiet, deps) {
|
|
95
89
|
if (quiet) {
|
|
96
90
|
return { onEvent: () => undefined };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/adapters/in/cli/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,10 +21,15 @@ const promptNames = [
|
|
|
21
21
|
"terra",
|
|
22
22
|
"vector",
|
|
23
23
|
];
|
|
24
|
+
export class ShellPromptService {
|
|
25
|
+
buildAssignment(name = randomPromptName()) {
|
|
26
|
+
return `PS1='\\[\\e]0;\\u@${name}: \\w\\a\\]\${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@${name}\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
24
29
|
export function buildPromptAssignment(name = randomPromptName()) {
|
|
25
|
-
return
|
|
30
|
+
return new ShellPromptService().buildAssignment(name);
|
|
26
31
|
}
|
|
27
32
|
function randomPromptName() {
|
|
28
33
|
return promptNames[randomInt(promptNames.length)];
|
|
29
34
|
}
|
|
30
|
-
//# sourceMappingURL=shell-prompt.js.map
|
|
35
|
+
//# sourceMappingURL=shell-prompt.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-prompt.service.js","sourceRoot":"","sources":["../../../src/services/shell-prompt/shell-prompt.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,GAAG;IAClB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;CACT,CAAC;AAEF,MAAM,OAAO,kBAAkB;IAC7B,eAAe,CAAC,IAAI,GAAG,gBAAgB,EAAE;QACvC,OAAO,qBAAqB,IAAI,uEAAuE,IAAI,2DAA2D,CAAC;IACzK,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAI,GAAG,gBAAgB,EAAE;IAC7D,OAAO,IAAI,kBAAkB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TerminalScriptsEntry, TerminalScriptsStore } from "../../terminal-scripts.service.js";
|
|
2
|
+
export declare class FileSystemTerminalScriptsStore implements TerminalScriptsStore {
|
|
3
|
+
private readonly directory;
|
|
4
|
+
constructor(directory: string);
|
|
5
|
+
ensureDirectory(): Promise<void>;
|
|
6
|
+
isDirectory(): Promise<boolean>;
|
|
7
|
+
listFiles(): Promise<TerminalScriptsEntry[]>;
|
|
8
|
+
modifiedAtMs(entryName: string): Promise<number>;
|
|
9
|
+
remove(entryName: string): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { mkdir, readdir, stat, unlink } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
export class FileSystemTerminalScriptsStore {
|
|
4
|
+
directory;
|
|
5
|
+
constructor(directory) {
|
|
6
|
+
this.directory = directory;
|
|
7
|
+
}
|
|
8
|
+
async ensureDirectory() {
|
|
9
|
+
await mkdir(this.directory, { recursive: true });
|
|
10
|
+
}
|
|
11
|
+
async isDirectory() {
|
|
12
|
+
try {
|
|
13
|
+
const directoryStat = await stat(this.directory);
|
|
14
|
+
return directoryStat.isDirectory();
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
const typedError = error;
|
|
18
|
+
if (typedError.code === "ENOENT") {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async listFiles() {
|
|
25
|
+
const entries = await readdir(this.directory, { withFileTypes: true });
|
|
26
|
+
return entries
|
|
27
|
+
.filter((entry) => entry.isFile())
|
|
28
|
+
.map((entry) => ({ name: entry.name }));
|
|
29
|
+
}
|
|
30
|
+
async modifiedAtMs(entryName) {
|
|
31
|
+
const fileStat = await stat(join(this.directory, entryName));
|
|
32
|
+
return fileStat.mtimeMs;
|
|
33
|
+
}
|
|
34
|
+
async remove(entryName) {
|
|
35
|
+
await unlink(join(this.directory, entryName));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=file-system-terminal-scripts-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-system-terminal-scripts-store.js","sourceRoot":"","sources":["../../../../../src/services/terminal-scripts/adapters/out/file-system-terminal-scripts-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC,MAAM,OAAO,8BAA8B;IACZ;IAA7B,YAA6B,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAElD,KAAK,CAAC,eAAe;QACnB,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjD,OAAO,aAAa,CAAC,WAAW,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,KAA8B,CAAC;YAClD,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvE,OAAO,OAAO;aACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAChD,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { ScriptCommandNotFoundError, } from "../../terminal-scripts.service.js";
|
|
3
|
+
export class ScriptProcessRunner {
|
|
4
|
+
async run(logPath) {
|
|
5
|
+
return new Promise((resolve, reject) => {
|
|
6
|
+
const child = spawn("script", ["-q", "-f", logPath], {
|
|
7
|
+
stdio: "inherit",
|
|
8
|
+
});
|
|
9
|
+
child.once("error", (error) => {
|
|
10
|
+
if (error.code === "ENOENT") {
|
|
11
|
+
reject(new ScriptCommandNotFoundError());
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
reject(error);
|
|
15
|
+
});
|
|
16
|
+
child.once("close", (code) => {
|
|
17
|
+
resolve(code ?? 1);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=script-process-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"script-process-runner.js","sourceRoot":"","sources":["../../../../../src/services/terminal-scripts/adapters/out/script-process-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EACL,0BAA0B,GAE3B,MAAM,mCAAmC,CAAC;AAE3C,MAAM,OAAO,mBAAmB;IAC9B,KAAK,CAAC,GAAG,CAAC,OAAe;QACvB,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;gBACnD,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAA4B,EAAE,EAAE;gBACnD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5B,MAAM,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;oBACzC,OAAO;gBACT,CAAC;gBAED,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;gBAC1C,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-scripts-listener.js","sourceRoot":"","sources":["../../../src/services/terminal-scripts/terminal-scripts-listener.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,2BAA2B,GAA4B;IAClE,OAAO;QACL,sBAAsB;IACxB,CAAC;CACF,CAAC"}
|
package/dist/{core/terminal-scripts.d.ts → services/terminal-scripts/terminal-scripts.service.d.ts}
RENAMED
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import { type TerminalScriptsListener } from "./terminal-scripts-listener.js";
|
|
2
|
+
export interface TerminalScriptsEntry {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
}
|
|
5
|
+
export interface TerminalScriptsStore {
|
|
6
|
+
ensureDirectory(): Promise<void>;
|
|
7
|
+
isDirectory(): Promise<boolean>;
|
|
8
|
+
listFiles(): Promise<TerminalScriptsEntry[]>;
|
|
9
|
+
modifiedAtMs(entryName: string): Promise<number>;
|
|
10
|
+
remove(entryName: string): Promise<void>;
|
|
11
|
+
}
|
|
2
12
|
export interface RecordProcessRunner {
|
|
3
13
|
run(logPath: string): Promise<number>;
|
|
4
14
|
}
|
|
@@ -9,14 +19,13 @@ export interface CleanResult {
|
|
|
9
19
|
export declare class ScriptCommandNotFoundError extends Error {
|
|
10
20
|
constructor();
|
|
11
21
|
}
|
|
12
|
-
export declare class
|
|
13
|
-
run(logPath: string): Promise<number>;
|
|
14
|
-
}
|
|
15
|
-
export declare class TerminalScripts {
|
|
22
|
+
export declare class TerminalScriptsService {
|
|
16
23
|
private readonly directory;
|
|
17
24
|
private readonly listener;
|
|
25
|
+
private readonly store;
|
|
18
26
|
private readonly processRunner;
|
|
19
|
-
constructor(directory: string, listener?: TerminalScriptsListener, processRunner?: RecordProcessRunner);
|
|
27
|
+
constructor(directory: string, listener?: TerminalScriptsListener, store?: TerminalScriptsStore, processRunner?: RecordProcessRunner);
|
|
20
28
|
record(): Promise<number>;
|
|
21
29
|
clean(maxAgeMinutes?: number): Promise<CleanResult>;
|
|
22
30
|
}
|
|
31
|
+
export { TerminalScriptsService as TerminalScripts };
|
package/dist/{core/terminal-scripts.js → services/terminal-scripts/terminal-scripts.service.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { mkdir, readdir, stat, unlink } from "node:fs/promises";
|
|
2
|
-
import { spawn } from "node:child_process";
|
|
3
1
|
import { join } from "node:path";
|
|
2
|
+
import { FileSystemTerminalScriptsStore } from "./adapters/out/file-system-terminal-scripts-store.js";
|
|
3
|
+
import { ScriptProcessRunner } from "./adapters/out/script-process-runner.js";
|
|
4
4
|
import { noopTerminalScriptsListener, } from "./terminal-scripts-listener.js";
|
|
5
5
|
export class ScriptCommandNotFoundError extends Error {
|
|
6
6
|
constructor() {
|
|
@@ -8,66 +8,34 @@ export class ScriptCommandNotFoundError extends Error {
|
|
|
8
8
|
this.name = "ScriptCommandNotFoundError";
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
export class
|
|
12
|
-
async run(logPath) {
|
|
13
|
-
return new Promise((resolve, reject) => {
|
|
14
|
-
const child = spawn("script", ["-q", "-f", logPath], {
|
|
15
|
-
stdio: "inherit",
|
|
16
|
-
});
|
|
17
|
-
child.once("error", (error) => {
|
|
18
|
-
if (error.code === "ENOENT") {
|
|
19
|
-
reject(new ScriptCommandNotFoundError());
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
reject(error);
|
|
23
|
-
});
|
|
24
|
-
child.once("close", (code) => {
|
|
25
|
-
resolve(code ?? 1);
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export class TerminalScripts {
|
|
11
|
+
export class TerminalScriptsService {
|
|
31
12
|
directory;
|
|
32
13
|
listener;
|
|
14
|
+
store;
|
|
33
15
|
processRunner;
|
|
34
|
-
constructor(directory, listener = noopTerminalScriptsListener, processRunner = new ScriptProcessRunner()) {
|
|
16
|
+
constructor(directory, listener = noopTerminalScriptsListener, store = new FileSystemTerminalScriptsStore(directory), processRunner = new ScriptProcessRunner()) {
|
|
35
17
|
this.directory = directory;
|
|
36
18
|
this.listener = listener;
|
|
19
|
+
this.store = store;
|
|
37
20
|
this.processRunner = processRunner;
|
|
38
21
|
}
|
|
39
22
|
async record() {
|
|
40
|
-
await
|
|
23
|
+
await this.store.ensureDirectory();
|
|
41
24
|
const logPath = join(this.directory, `${buildTimestamp()}.log`);
|
|
42
25
|
this.listener.onEvent({ type: "record_started", logPath });
|
|
43
26
|
return this.processRunner.run(logPath);
|
|
44
27
|
}
|
|
45
28
|
async clean(maxAgeMinutes = 15) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (!directoryStat.isDirectory()) {
|
|
49
|
-
return { directoryExists: false, removed: 0 };
|
|
50
|
-
}
|
|
29
|
+
if (!(await this.store.isDirectory())) {
|
|
30
|
+
return { directoryExists: false, removed: 0 };
|
|
51
31
|
}
|
|
52
|
-
|
|
53
|
-
const typedError = error;
|
|
54
|
-
if (typedError.code === "ENOENT") {
|
|
55
|
-
return { directoryExists: false, removed: 0 };
|
|
56
|
-
}
|
|
57
|
-
throw error;
|
|
58
|
-
}
|
|
59
|
-
const entries = await readdir(this.directory, { withFileTypes: true });
|
|
32
|
+
const entries = await this.store.listFiles();
|
|
60
33
|
const cutoff = Date.now() - maxAgeMinutes * 60 * 1000;
|
|
61
34
|
let removed = 0;
|
|
62
35
|
for (const entry of entries) {
|
|
63
|
-
if (!entry.isFile()) {
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
const filePath = join(this.directory, entry.name);
|
|
67
36
|
let modifiedAtMs;
|
|
68
37
|
try {
|
|
69
|
-
|
|
70
|
-
modifiedAtMs = fileStat.mtimeMs;
|
|
38
|
+
modifiedAtMs = await this.store.modifiedAtMs(entry.name);
|
|
71
39
|
}
|
|
72
40
|
catch (error) {
|
|
73
41
|
const reason = toErrorMessage(error);
|
|
@@ -82,7 +50,7 @@ export class TerminalScripts {
|
|
|
82
50
|
continue;
|
|
83
51
|
}
|
|
84
52
|
try {
|
|
85
|
-
await
|
|
53
|
+
await this.store.remove(entry.name);
|
|
86
54
|
removed += 1;
|
|
87
55
|
}
|
|
88
56
|
catch (error) {
|
|
@@ -119,4 +87,5 @@ function toErrorMessage(error) {
|
|
|
119
87
|
}
|
|
120
88
|
return String(error);
|
|
121
89
|
}
|
|
122
|
-
|
|
90
|
+
export { TerminalScriptsService as TerminalScripts };
|
|
91
|
+
//# sourceMappingURL=terminal-scripts.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminal-scripts.service.js","sourceRoot":"","sources":["../../../src/services/terminal-scripts/terminal-scripts.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.service.js","sourceRoot":"","sources":["../../../src/services/version/version.service.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,OAAO,cAAc;IACzB,cAAc;QACZ,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hekonsek/scriptz",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "CLI utilities for recording terminal sessions",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"url": "https://github.com/hekonsek/scriptz/issues"
|
|
14
14
|
},
|
|
15
15
|
"bin": {
|
|
16
|
-
"scriptz": "dist/cli/cli.js"
|
|
16
|
+
"scriptz": "dist/adapters/in/cli/cli.js"
|
|
17
17
|
},
|
|
18
18
|
"files": [
|
|
19
19
|
"dist"
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"scripts": {
|
|
25
25
|
"build": "tsc -p tsconfig.json",
|
|
26
26
|
"clean": "rm -rf dist",
|
|
27
|
-
"dev": "tsx src/cli/cli.ts",
|
|
27
|
+
"dev": "tsx src/adapters/in/cli/cli.ts",
|
|
28
28
|
"test": "vitest run",
|
|
29
29
|
"typecheck": "tsc --noEmit",
|
|
30
30
|
"release": "npm version minor && git push --follow-tags",
|
package/dist/cli/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function buildPromptAssignment(name?: string): string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shell-prompt.js","sourceRoot":"","sources":["../../src/core/shell-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,GAAG;IAClB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;CACT,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,IAAI,GAAG,gBAAgB,EAAE;IAC7D,OAAO,qBAAqB,IAAI,uEAAuE,IAAI,2DAA2D,CAAC;AACzK,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-scripts-listener.js","sourceRoot":"","sources":["../../src/core/terminal-scripts-listener.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,2BAA2B,GAA4B;IAClE,OAAO;QACL,sBAAsB;IACxB,CAAC;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-scripts.js","sourceRoot":"","sources":["../../src/core/terminal-scripts.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|