@ecmaos/coreutils 0.1.5 → 0.2.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +45 -0
- package/dist/commands/basename.d.ts +4 -0
- package/dist/commands/basename.d.ts.map +1 -0
- package/dist/commands/basename.js +78 -0
- package/dist/commands/basename.js.map +1 -0
- package/dist/commands/cal.d.ts +4 -0
- package/dist/commands/cal.d.ts.map +1 -0
- package/dist/commands/cal.js +105 -0
- package/dist/commands/cal.js.map +1 -0
- package/dist/commands/cat.d.ts.map +1 -1
- package/dist/commands/cat.js +33 -25
- package/dist/commands/cat.js.map +1 -1
- package/dist/commands/cd.d.ts.map +1 -1
- package/dist/commands/cd.js +38 -10
- package/dist/commands/cd.js.map +1 -1
- package/dist/commands/chmod.d.ts.map +1 -1
- package/dist/commands/chmod.js +31 -9
- package/dist/commands/chmod.js.map +1 -1
- package/dist/commands/comm.d.ts +4 -0
- package/dist/commands/comm.d.ts.map +1 -0
- package/dist/commands/comm.js +162 -0
- package/dist/commands/comm.js.map +1 -0
- package/dist/commands/cp.d.ts.map +1 -1
- package/dist/commands/cp.js +61 -12
- package/dist/commands/cp.js.map +1 -1
- package/dist/commands/cut.d.ts +4 -0
- package/dist/commands/cut.d.ts.map +1 -0
- package/dist/commands/cut.js +208 -0
- package/dist/commands/cut.js.map +1 -0
- package/dist/commands/date.d.ts +4 -0
- package/dist/commands/date.d.ts.map +1 -0
- package/dist/commands/date.js +100 -0
- package/dist/commands/date.js.map +1 -0
- package/dist/commands/diff.d.ts +4 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +194 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/dirname.d.ts +4 -0
- package/dist/commands/dirname.d.ts.map +1 -0
- package/dist/commands/dirname.js +50 -0
- package/dist/commands/dirname.js.map +1 -0
- package/dist/commands/echo.d.ts.map +1 -1
- package/dist/commands/echo.js +49 -10
- package/dist/commands/echo.js.map +1 -1
- package/dist/commands/false.d.ts +4 -0
- package/dist/commands/false.d.ts.map +1 -0
- package/dist/commands/false.js +27 -0
- package/dist/commands/false.js.map +1 -0
- package/dist/commands/find.d.ts +4 -0
- package/dist/commands/find.d.ts.map +1 -0
- package/dist/commands/find.js +181 -0
- package/dist/commands/find.js.map +1 -0
- package/dist/commands/grep.d.ts.map +1 -1
- package/dist/commands/grep.js +45 -10
- package/dist/commands/grep.js.map +1 -1
- package/dist/commands/head.d.ts.map +1 -1
- package/dist/commands/head.js +46 -9
- package/dist/commands/head.js.map +1 -1
- package/dist/commands/hex.d.ts.map +1 -1
- package/dist/commands/hex.js +16 -6
- package/dist/commands/hex.js.map +1 -1
- package/dist/commands/id.d.ts +4 -0
- package/dist/commands/id.d.ts.map +1 -0
- package/dist/commands/id.js +97 -0
- package/dist/commands/id.js.map +1 -0
- package/dist/commands/join.d.ts +4 -0
- package/dist/commands/join.d.ts.map +1 -0
- package/dist/commands/join.js +152 -0
- package/dist/commands/join.js.map +1 -0
- package/dist/commands/less.d.ts.map +1 -1
- package/dist/commands/less.js +16 -7
- package/dist/commands/less.js.map +1 -1
- package/dist/commands/ln.d.ts.map +1 -1
- package/dist/commands/ln.js +54 -12
- package/dist/commands/ln.js.map +1 -1
- package/dist/commands/ls.d.ts.map +1 -1
- package/dist/commands/ls.js +96 -91
- package/dist/commands/ls.js.map +1 -1
- package/dist/commands/mkdir.d.ts.map +1 -1
- package/dist/commands/mkdir.js +34 -9
- package/dist/commands/mkdir.js.map +1 -1
- package/dist/commands/mv.d.ts.map +1 -1
- package/dist/commands/mv.js +25 -7
- package/dist/commands/mv.js.map +1 -1
- package/dist/commands/nc.d.ts +4 -0
- package/dist/commands/nc.d.ts.map +1 -0
- package/dist/commands/nc.js +451 -0
- package/dist/commands/nc.js.map +1 -0
- package/dist/commands/nl.d.ts +4 -0
- package/dist/commands/nl.d.ts.map +1 -0
- package/dist/commands/nl.js +208 -0
- package/dist/commands/nl.js.map +1 -0
- package/dist/commands/passkey.d.ts.map +1 -1
- package/dist/commands/passkey.js +44 -18
- package/dist/commands/passkey.js.map +1 -1
- package/dist/commands/paste.d.ts +4 -0
- package/dist/commands/paste.d.ts.map +1 -0
- package/dist/commands/paste.js +161 -0
- package/dist/commands/paste.js.map +1 -0
- package/dist/commands/pwd.d.ts.map +1 -1
- package/dist/commands/pwd.js +13 -4
- package/dist/commands/pwd.js.map +1 -1
- package/dist/commands/rm.d.ts.map +1 -1
- package/dist/commands/rm.js +105 -12
- package/dist/commands/rm.js.map +1 -1
- package/dist/commands/rmdir.d.ts.map +1 -1
- package/dist/commands/rmdir.js +34 -9
- package/dist/commands/rmdir.js.map +1 -1
- package/dist/commands/sed.d.ts.map +1 -1
- package/dist/commands/sed.js +73 -28
- package/dist/commands/sed.js.map +1 -1
- package/dist/commands/seq.d.ts +4 -0
- package/dist/commands/seq.d.ts.map +1 -0
- package/dist/commands/seq.js +148 -0
- package/dist/commands/seq.js.map +1 -0
- package/dist/commands/sockets.d.ts +4 -0
- package/dist/commands/sockets.d.ts.map +1 -0
- package/dist/commands/sockets.js +239 -0
- package/dist/commands/sockets.js.map +1 -0
- package/dist/commands/sort.d.ts +4 -0
- package/dist/commands/sort.d.ts.map +1 -0
- package/dist/commands/sort.js +175 -0
- package/dist/commands/sort.js.map +1 -0
- package/dist/commands/split.d.ts +4 -0
- package/dist/commands/split.d.ts.map +1 -0
- package/dist/commands/split.js +147 -0
- package/dist/commands/split.js.map +1 -0
- package/dist/commands/stat.d.ts.map +1 -1
- package/dist/commands/stat.js +14 -6
- package/dist/commands/stat.js.map +1 -1
- package/dist/commands/tail.d.ts.map +1 -1
- package/dist/commands/tail.js +46 -9
- package/dist/commands/tail.js.map +1 -1
- package/dist/commands/tee.d.ts.map +1 -1
- package/dist/commands/tee.js +45 -10
- package/dist/commands/tee.js.map +1 -1
- package/dist/commands/test.d.ts +4 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +99 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/touch.d.ts.map +1 -1
- package/dist/commands/touch.js +34 -9
- package/dist/commands/touch.js.map +1 -1
- package/dist/commands/tr.d.ts +4 -0
- package/dist/commands/tr.d.ts.map +1 -0
- package/dist/commands/tr.js +162 -0
- package/dist/commands/tr.js.map +1 -0
- package/dist/commands/true.d.ts +4 -0
- package/dist/commands/true.d.ts.map +1 -0
- package/dist/commands/true.js +27 -0
- package/dist/commands/true.js.map +1 -0
- package/dist/commands/uniq.d.ts +4 -0
- package/dist/commands/uniq.d.ts.map +1 -0
- package/dist/commands/uniq.js +187 -0
- package/dist/commands/uniq.js.map +1 -0
- package/dist/commands/user.d.ts +4 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +427 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/commands/wc.d.ts +4 -0
- package/dist/commands/wc.d.ts.map +1 -0
- package/dist/commands/wc.js +178 -0
- package/dist/commands/wc.js.map +1 -0
- package/dist/commands/which.d.ts +4 -0
- package/dist/commands/which.d.ts.map +1 -0
- package/dist/commands/which.js +78 -0
- package/dist/commands/which.js.map +1 -0
- package/dist/commands/whoami.d.ts +4 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +28 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -1
- package/dist/index.js.map +1 -1
- package/dist/shared/terminal-command.d.ts +8 -2
- package/dist/shared/terminal-command.d.ts.map +1 -1
- package/dist/shared/terminal-command.js +42 -17
- package/dist/shared/terminal-command.js.map +1 -1
- package/package.json +4 -2
- package/src/commands/basename.ts +84 -0
- package/src/commands/cal.ts +111 -0
- package/src/commands/cat.ts +37 -27
- package/src/commands/cd.ts +40 -12
- package/src/commands/chmod.ts +37 -11
- package/src/commands/comm.ts +169 -0
- package/src/commands/cp.ts +73 -15
- package/src/commands/cut.ts +214 -0
- package/src/commands/date.ts +97 -0
- package/src/commands/diff.ts +204 -0
- package/src/commands/dirname.ts +57 -0
- package/src/commands/echo.ts +51 -11
- package/src/commands/false.ts +31 -0
- package/src/commands/find.ts +184 -0
- package/src/commands/grep.ts +44 -11
- package/src/commands/head.ts +46 -10
- package/src/commands/hex.ts +19 -7
- package/src/commands/id.ts +94 -0
- package/src/commands/join.ts +162 -0
- package/src/commands/less.ts +20 -8
- package/src/commands/ln.ts +50 -13
- package/src/commands/ls.ts +110 -87
- package/src/commands/mkdir.ts +41 -12
- package/src/commands/mv.ts +31 -9
- package/src/commands/nc.ts +499 -0
- package/src/commands/nl.ts +201 -0
- package/src/commands/passkey.ts +46 -19
- package/src/commands/paste.ts +172 -0
- package/src/commands/pwd.ts +16 -4
- package/src/commands/rm.ts +118 -13
- package/src/commands/rmdir.ts +41 -12
- package/src/commands/sed.ts +64 -30
- package/src/commands/seq.ts +147 -0
- package/src/commands/sockets.ts +283 -0
- package/src/commands/sort.ts +175 -0
- package/src/commands/split.ts +154 -0
- package/src/commands/stat.ts +17 -8
- package/src/commands/tail.ts +46 -10
- package/src/commands/tee.ts +43 -11
- package/src/commands/test.ts +116 -0
- package/src/commands/touch.ts +41 -12
- package/src/commands/tr.ts +170 -0
- package/src/commands/true.ts +31 -0
- package/src/commands/uniq.ts +189 -0
- package/src/commands/user.ts +436 -0
- package/src/commands/wc.ts +181 -0
- package/src/commands/which.ts +89 -0
- package/src/commands/whoami.ts +32 -0
- package/src/index.ts +67 -1
- package/src/shared/terminal-command.ts +43 -16
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wc.js","sourceRoot":"","sources":["../../src/commands/wc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Kernel, Shell, Terminal } from '@ecmaos/types';
|
|
2
|
+
import { TerminalCommand } from '../shared/terminal-command.js';
|
|
3
|
+
export declare function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal): TerminalCommand;
|
|
4
|
+
//# sourceMappingURL=which.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"which.d.ts","sourceRoot":"","sources":["../../src/commands/which.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAW,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAY/D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CA0E/F"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { TerminalCommand } from '../shared/terminal-command.js';
|
|
3
|
+
import { writelnStderr } from '../shared/helpers.js';
|
|
4
|
+
function printUsage(process, terminal) {
|
|
5
|
+
const usage = `Usage: which [COMMAND]...
|
|
6
|
+
Locate a command.
|
|
7
|
+
|
|
8
|
+
COMMAND the command(s) to locate
|
|
9
|
+
--help display this help and exit`;
|
|
10
|
+
writelnStderr(process, terminal, usage);
|
|
11
|
+
}
|
|
12
|
+
export function createCommand(kernel, shell, terminal) {
|
|
13
|
+
return new TerminalCommand({
|
|
14
|
+
command: 'which',
|
|
15
|
+
description: 'Locate a command',
|
|
16
|
+
kernel,
|
|
17
|
+
shell,
|
|
18
|
+
terminal,
|
|
19
|
+
run: async (pid, argv) => {
|
|
20
|
+
const process = kernel.processes.get(pid);
|
|
21
|
+
if (!process)
|
|
22
|
+
return 1;
|
|
23
|
+
if (argv.length > 0 && (argv[0] === '--help' || argv[0] === '-h')) {
|
|
24
|
+
printUsage(process, terminal);
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
const commands = [];
|
|
28
|
+
for (const arg of argv) {
|
|
29
|
+
if (arg !== '--help' && arg !== '-h' && !arg.startsWith('-')) {
|
|
30
|
+
commands.push(arg);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
if (commands.length === 0) {
|
|
34
|
+
await writelnStderr(process, terminal, 'which: missing command name');
|
|
35
|
+
return 1;
|
|
36
|
+
}
|
|
37
|
+
const writer = process.stdout.getWriter();
|
|
38
|
+
let exitCode = 0;
|
|
39
|
+
const resolveCommand = async (command) => {
|
|
40
|
+
if (command.startsWith('./')) {
|
|
41
|
+
const cwdCommand = path.join(shell.cwd, command.slice(2));
|
|
42
|
+
if (await shell.context.fs.promises.exists(cwdCommand)) {
|
|
43
|
+
return cwdCommand;
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const paths = shell.env.get('PATH')?.split(':') || ['/bin', '/usr/bin', '/usr/local/bin'];
|
|
48
|
+
const resolvedCommand = path.resolve(command);
|
|
49
|
+
if (await shell.context.fs.promises.exists(resolvedCommand)) {
|
|
50
|
+
return resolvedCommand;
|
|
51
|
+
}
|
|
52
|
+
for (const pathDir of paths) {
|
|
53
|
+
const expandedPath = pathDir.replace(/\$([A-Z_]+)/g, (_, name) => shell.env.get(name) || '');
|
|
54
|
+
const fullPath = `${expandedPath}/${command}`;
|
|
55
|
+
if (await shell.context.fs.promises.exists(fullPath))
|
|
56
|
+
return fullPath;
|
|
57
|
+
}
|
|
58
|
+
return undefined;
|
|
59
|
+
};
|
|
60
|
+
try {
|
|
61
|
+
for (const cmd of commands) {
|
|
62
|
+
const commandPath = await resolveCommand(cmd);
|
|
63
|
+
if (commandPath) {
|
|
64
|
+
await writer.write(new TextEncoder().encode(commandPath + '\n'));
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
exitCode = 1;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return exitCode;
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
writer.releaseLock();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=which.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"which.js","sourceRoot":"","sources":["../../src/commands/which.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,SAAS,UAAU,CAAC,OAA4B,EAAE,QAAkB;IAClE,MAAM,KAAK,GAAG;;;;qCAIqB,CAAA;IACnC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,KAAY,EAAE,QAAkB;IAC5E,OAAO,IAAI,eAAe,CAAC;QACzB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,kBAAkB;QAC/B,MAAM;QACN,KAAK;QACL,QAAQ;QACR,GAAG,EAAE,KAAK,EAAE,GAAW,EAAE,IAAc,EAAE,EAAE;YACzC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAwB,CAAA;YAEhE,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,CAAA;YAEtB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBAClE,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;gBAC7B,OAAO,CAAC,CAAA;YACV,CAAC;YAED,MAAM,QAAQ,GAAa,EAAE,CAAA;YAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7D,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,6BAA6B,CAAC,CAAA;gBACrE,OAAO,CAAC,CAAA;YACV,CAAC;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;YACzC,IAAI,QAAQ,GAAG,CAAC,CAAA;YAEhB,MAAM,cAAc,GAAG,KAAK,EAAE,OAAe,EAA+B,EAAE;gBAC5E,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;oBACzD,IAAI,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;wBACvD,OAAO,UAAU,CAAA;oBACnB,CAAC;oBACD,OAAO,SAAS,CAAA;gBAClB,CAAC;gBAED,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAA;gBACzF,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBAE7C,IAAI,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;oBAC5D,OAAO,eAAe,CAAA;gBACxB,CAAC;gBAED,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;oBAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;oBAC5F,MAAM,QAAQ,GAAG,GAAG,YAAY,IAAI,OAAO,EAAE,CAAA;oBAC7C,IAAI,MAAM,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;wBAAE,OAAO,QAAQ,CAAA;gBACvE,CAAC;gBAED,OAAO,SAAS,CAAA;YAClB,CAAC,CAAA;YAED,IAAI,CAAC;gBACH,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAA;oBAE7C,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAAA;oBAClE,CAAC;yBAAM,CAAC;wBACN,QAAQ,GAAG,CAAC,CAAA;oBACd,CAAC;gBACH,CAAC;gBAED,OAAO,QAAQ,CAAA;YACjB,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,WAAW,EAAE,CAAA;YACtB,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Kernel, Shell, Terminal } from '@ecmaos/types';
|
|
2
|
+
import { TerminalCommand } from '../shared/terminal-command.js';
|
|
3
|
+
export declare function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal): TerminalCommand;
|
|
4
|
+
//# sourceMappingURL=whoami.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAW,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAW/D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CAmB/F"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { TerminalCommand } from '../shared/terminal-command.js';
|
|
2
|
+
import { writelnStdout } from '../shared/helpers.js';
|
|
3
|
+
function printUsage(process, terminal) {
|
|
4
|
+
const usage = `Usage: whoami
|
|
5
|
+
Print effective user ID.
|
|
6
|
+
|
|
7
|
+
--help display this help and exit`;
|
|
8
|
+
writelnStdout(process, terminal, usage);
|
|
9
|
+
}
|
|
10
|
+
export function createCommand(kernel, shell, terminal) {
|
|
11
|
+
return new TerminalCommand({
|
|
12
|
+
command: 'whoami',
|
|
13
|
+
description: 'Print effective user ID',
|
|
14
|
+
kernel,
|
|
15
|
+
shell,
|
|
16
|
+
terminal,
|
|
17
|
+
run: async (pid, argv) => {
|
|
18
|
+
const process = kernel.processes.get(pid);
|
|
19
|
+
if (argv.length > 0 && (argv[0] === '--help' || argv[0] === '-h')) {
|
|
20
|
+
printUsage(process, terminal);
|
|
21
|
+
return 0;
|
|
22
|
+
}
|
|
23
|
+
await writelnStdout(process, terminal, shell.username);
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=whoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/commands/whoami.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,SAAS,UAAU,CAAC,OAA4B,EAAE,QAAkB;IAClE,MAAM,KAAK,GAAG;;;qCAGqB,CAAA;IACnC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,KAAY,EAAE,QAAkB;IAC5E,OAAO,IAAI,eAAe,CAAC;QACzB,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,yBAAyB;QACtC,MAAM;QACN,KAAK;QACL,QAAQ;QACR,GAAG,EAAE,KAAK,EAAE,GAAW,EAAE,IAAc,EAAE,EAAE;YACzC,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAwB,CAAA;YAEhE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBAClE,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;gBAC7B,OAAO,CAAC,CAAA;YACV,CAAC;YAED,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;YACtD,OAAO,CAAC,CAAA;QACV,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,6 +23,20 @@ export { createCommand as createLess } from './commands/less.js';
|
|
|
23
23
|
export { createCommand as createSed } from './commands/sed.js';
|
|
24
24
|
export { createCommand as createTee } from './commands/tee.js';
|
|
25
25
|
export { createCommand as createTail } from './commands/tail.js';
|
|
26
|
+
export { createCommand as createBasename } from './commands/basename.js';
|
|
27
|
+
export { createCommand as createCut } from './commands/cut.js';
|
|
28
|
+
export { createCommand as createDate } from './commands/date.js';
|
|
29
|
+
export { createCommand as createDiff } from './commands/diff.js';
|
|
30
|
+
export { createCommand as createDirname } from './commands/dirname.js';
|
|
31
|
+
export { createCommand as createFind } from './commands/find.js';
|
|
32
|
+
export { createCommand as createSort } from './commands/sort.js';
|
|
33
|
+
export { createCommand as createTest } from './commands/test.js';
|
|
34
|
+
export { createCommand as createTr } from './commands/tr.js';
|
|
35
|
+
export { createCommand as createUniq } from './commands/uniq.js';
|
|
36
|
+
export { createCommand as createUser } from './commands/user.js';
|
|
37
|
+
export { createCommand as createWc } from './commands/wc.js';
|
|
38
|
+
export { createCommand as createWhich } from './commands/which.js';
|
|
39
|
+
export { createCommand as createSockets } from './commands/sockets.js';
|
|
26
40
|
/**
|
|
27
41
|
* Creates all coreutils commands.
|
|
28
42
|
* This function replaces the TerminalCommands function from the kernel.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,9 @@ import { createCommand as createLn } from './commands/ln.js';
|
|
|
13
13
|
import { createCommand as createLs } from './commands/ls.js';
|
|
14
14
|
import { createCommand as createMkdir } from './commands/mkdir.js';
|
|
15
15
|
import { createCommand as createMv } from './commands/mv.js';
|
|
16
|
+
import { createCommand as createNc } from './commands/nc.js';
|
|
16
17
|
import { createCommand as createPwd } from './commands/pwd.js';
|
|
18
|
+
import { createCommand as createSockets } from './commands/sockets.js';
|
|
17
19
|
import { createCommand as createRm } from './commands/rm.js';
|
|
18
20
|
import { createCommand as createRmdir } from './commands/rmdir.js';
|
|
19
21
|
import { createCommand as createStat } from './commands/stat.js';
|
|
@@ -24,6 +26,30 @@ import { createCommand as createPasskey } from './commands/passkey.js';
|
|
|
24
26
|
import { createCommand as createSed } from './commands/sed.js';
|
|
25
27
|
import { createCommand as createTee } from './commands/tee.js';
|
|
26
28
|
import { createCommand as createTail } from './commands/tail.js';
|
|
29
|
+
import { createCommand as createBasename } from './commands/basename.js';
|
|
30
|
+
import { createCommand as createCal } from './commands/cal.js';
|
|
31
|
+
import { createCommand as createComm } from './commands/comm.js';
|
|
32
|
+
import { createCommand as createCut } from './commands/cut.js';
|
|
33
|
+
import { createCommand as createDate } from './commands/date.js';
|
|
34
|
+
import { createCommand as createDiff } from './commands/diff.js';
|
|
35
|
+
import { createCommand as createDirname } from './commands/dirname.js';
|
|
36
|
+
import { createCommand as createFalse } from './commands/false.js';
|
|
37
|
+
import { createCommand as createFind } from './commands/find.js';
|
|
38
|
+
import { createCommand as createId } from './commands/id.js';
|
|
39
|
+
import { createCommand as createJoin } from './commands/join.js';
|
|
40
|
+
import { createCommand as createNl } from './commands/nl.js';
|
|
41
|
+
import { createCommand as createPaste } from './commands/paste.js';
|
|
42
|
+
import { createCommand as createSeq } from './commands/seq.js';
|
|
43
|
+
import { createCommand as createSort } from './commands/sort.js';
|
|
44
|
+
import { createCommand as createSplit } from './commands/split.js';
|
|
45
|
+
import { createCommand as createTest } from './commands/test.js';
|
|
46
|
+
import { createCommand as createTr } from './commands/tr.js';
|
|
47
|
+
import { createCommand as createTrue } from './commands/true.js';
|
|
48
|
+
import { createCommand as createUniq } from './commands/uniq.js';
|
|
49
|
+
import { createCommand as createUser } from './commands/user.js';
|
|
50
|
+
import { createCommand as createWc } from './commands/wc.js';
|
|
51
|
+
import { createCommand as createWhich } from './commands/which.js';
|
|
52
|
+
import { createCommand as createWhoami } from './commands/whoami.js';
|
|
27
53
|
// Export individual command factories
|
|
28
54
|
export { createCommand as createCat } from './commands/cat.js';
|
|
29
55
|
export { createCommand as createCd } from './commands/cd.js';
|
|
@@ -45,6 +71,20 @@ export { createCommand as createLess } from './commands/less.js';
|
|
|
45
71
|
export { createCommand as createSed } from './commands/sed.js';
|
|
46
72
|
export { createCommand as createTee } from './commands/tee.js';
|
|
47
73
|
export { createCommand as createTail } from './commands/tail.js';
|
|
74
|
+
export { createCommand as createBasename } from './commands/basename.js';
|
|
75
|
+
export { createCommand as createCut } from './commands/cut.js';
|
|
76
|
+
export { createCommand as createDate } from './commands/date.js';
|
|
77
|
+
export { createCommand as createDiff } from './commands/diff.js';
|
|
78
|
+
export { createCommand as createDirname } from './commands/dirname.js';
|
|
79
|
+
export { createCommand as createFind } from './commands/find.js';
|
|
80
|
+
export { createCommand as createSort } from './commands/sort.js';
|
|
81
|
+
export { createCommand as createTest } from './commands/test.js';
|
|
82
|
+
export { createCommand as createTr } from './commands/tr.js';
|
|
83
|
+
export { createCommand as createUniq } from './commands/uniq.js';
|
|
84
|
+
export { createCommand as createUser } from './commands/user.js';
|
|
85
|
+
export { createCommand as createWc } from './commands/wc.js';
|
|
86
|
+
export { createCommand as createWhich } from './commands/which.js';
|
|
87
|
+
export { createCommand as createSockets } from './commands/sockets.js';
|
|
48
88
|
/**
|
|
49
89
|
* Creates all coreutils commands.
|
|
50
90
|
* This function replaces the TerminalCommands function from the kernel.
|
|
@@ -63,6 +103,8 @@ export function createAllCommands(kernel, shell, terminal) {
|
|
|
63
103
|
mkdir: createMkdir(kernel, shell, terminal),
|
|
64
104
|
mv: createMv(kernel, shell, terminal),
|
|
65
105
|
pwd: createPwd(kernel, shell, terminal),
|
|
106
|
+
nc: createNc(kernel, shell, terminal),
|
|
107
|
+
sockets: createSockets(kernel, shell, terminal),
|
|
66
108
|
rm: createRm(kernel, shell, terminal),
|
|
67
109
|
rmdir: createRmdir(kernel, shell, terminal),
|
|
68
110
|
stat: createStat(kernel, shell, terminal),
|
|
@@ -72,7 +114,31 @@ export function createAllCommands(kernel, shell, terminal) {
|
|
|
72
114
|
passkey: createPasskey(kernel, shell, terminal),
|
|
73
115
|
sed: createSed(kernel, shell, terminal),
|
|
74
116
|
tail: createTail(kernel, shell, terminal),
|
|
75
|
-
tee: createTee(kernel, shell, terminal)
|
|
117
|
+
tee: createTee(kernel, shell, terminal),
|
|
118
|
+
basename: createBasename(kernel, shell, terminal),
|
|
119
|
+
cal: createCal(kernel, shell, terminal),
|
|
120
|
+
comm: createComm(kernel, shell, terminal),
|
|
121
|
+
cut: createCut(kernel, shell, terminal),
|
|
122
|
+
date: createDate(kernel, shell, terminal),
|
|
123
|
+
diff: createDiff(kernel, shell, terminal),
|
|
124
|
+
dirname: createDirname(kernel, shell, terminal),
|
|
125
|
+
false: createFalse(kernel, shell, terminal),
|
|
126
|
+
find: createFind(kernel, shell, terminal),
|
|
127
|
+
id: createId(kernel, shell, terminal),
|
|
128
|
+
join: createJoin(kernel, shell, terminal),
|
|
129
|
+
nl: createNl(kernel, shell, terminal),
|
|
130
|
+
paste: createPaste(kernel, shell, terminal),
|
|
131
|
+
seq: createSeq(kernel, shell, terminal),
|
|
132
|
+
sort: createSort(kernel, shell, terminal),
|
|
133
|
+
split: createSplit(kernel, shell, terminal),
|
|
134
|
+
test: createTest(kernel, shell, terminal),
|
|
135
|
+
tr: createTr(kernel, shell, terminal),
|
|
136
|
+
true: createTrue(kernel, shell, terminal),
|
|
137
|
+
uniq: createUniq(kernel, shell, terminal),
|
|
138
|
+
user: createUser(kernel, shell, terminal),
|
|
139
|
+
wc: createWc(kernel, shell, terminal),
|
|
140
|
+
which: createWhich(kernel, shell, terminal),
|
|
141
|
+
whoami: createWhoami(kernel, shell, terminal)
|
|
76
142
|
};
|
|
77
143
|
}
|
|
78
144
|
// For backward compatibility, export as TerminalCommands
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,+BAA+B;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAE5F,2BAA2B;AAC3B,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,aAAa,IAAI,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,13 @@ import { CommandLineOptions, OptionDefinition } from 'command-line-args';
|
|
|
2
2
|
import parseUsage from 'command-line-usage';
|
|
3
3
|
import type { TerminalCommand as ITerminalCommand } from '@ecmaos/types';
|
|
4
4
|
import type { Kernel, Process, Shell, Terminal } from '@ecmaos/types';
|
|
5
|
+
type UnifiedParserRun = (argv: CommandLineOptions, process?: Process, rawArgv?: string[]) => Promise<number | void>;
|
|
6
|
+
type RawArgvRun = (pid: number, argv: string[]) => Promise<number | void>;
|
|
5
7
|
/**
|
|
6
8
|
* The TerminalCommand class sets up a common interface for builtin terminal commands
|
|
9
|
+
* Supports two modes:
|
|
10
|
+
* - Unified parser mode: When options are provided, uses command-line-args (for kernel commands)
|
|
11
|
+
* - Raw argv mode: When options are not provided, passes raw argv directly (for coreutils commands)
|
|
7
12
|
*/
|
|
8
13
|
export declare class TerminalCommand implements ITerminalCommand {
|
|
9
14
|
command: string;
|
|
@@ -20,8 +25,8 @@ export declare class TerminalCommand implements ITerminalCommand {
|
|
|
20
25
|
command: string;
|
|
21
26
|
description: string;
|
|
22
27
|
kernel: Kernel;
|
|
23
|
-
options
|
|
24
|
-
run:
|
|
28
|
+
options?: parseUsage.OptionDefinition[];
|
|
29
|
+
run: UnifiedParserRun | RawArgvRun;
|
|
25
30
|
shell: Shell;
|
|
26
31
|
terminal: Terminal;
|
|
27
32
|
stdin?: ReadableStream<Uint8Array>;
|
|
@@ -31,4 +36,5 @@ export declare class TerminalCommand implements ITerminalCommand {
|
|
|
31
36
|
get usage(): string;
|
|
32
37
|
get usageContent(): string;
|
|
33
38
|
}
|
|
39
|
+
export {};
|
|
34
40
|
//# sourceMappingURL=terminal-command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-command.d.ts","sourceRoot":"","sources":["../../src/shared/terminal-command.ts"],"names":[],"mappings":"AACA,OAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,UAAU,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGrE
|
|
1
|
+
{"version":3,"file":"terminal-command.d.ts","sourceRoot":"","sources":["../../src/shared/terminal-command.ts"],"names":[],"mappings":"AACA,OAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,UAAU,MAAM,oBAAoB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGrE,KAAK,gBAAgB,GAAG,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AACnH,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;AAEzE;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,EAAE,MAAM,CAAK;IACpB,WAAW,EAAE,MAAM,CAAK;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAK;IAChC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAC5D,KAAK,EAAE,KAAK,CAAA;IACZ,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IAClC,MAAM,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;IACnC,MAAM,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;gBAEvB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAClG,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,UAAU,CAAC,gBAAgB,EAAE,CAAA;QACvC,GAAG,EAAE,gBAAgB,GAAG,UAAU,CAAA;QAClC,KAAK,EAAE,KAAK,CAAA;QACZ,QAAQ,EAAE,QAAQ,CAAA;QAClB,KAAK,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;QAClC,MAAM,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;QACnC,MAAM,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAA;KACpC;IA4CD,IAAI,KAAK,WASR;IAED,IAAI,YAAY,WAYf;CACF"}
|
|
@@ -4,6 +4,9 @@ import parseUsage from 'command-line-usage';
|
|
|
4
4
|
import { writelnStdout, writelnStderr } from './helpers.js';
|
|
5
5
|
/**
|
|
6
6
|
* The TerminalCommand class sets up a common interface for builtin terminal commands
|
|
7
|
+
* Supports two modes:
|
|
8
|
+
* - Unified parser mode: When options are provided, uses command-line-args (for kernel commands)
|
|
9
|
+
* - Raw argv mode: When options are not provided, passes raw argv directly (for coreutils commands)
|
|
7
10
|
*/
|
|
8
11
|
export class TerminalCommand {
|
|
9
12
|
command = '';
|
|
@@ -20,31 +23,50 @@ export class TerminalCommand {
|
|
|
20
23
|
this.command = command;
|
|
21
24
|
this.description = description;
|
|
22
25
|
this.kernel = kernel;
|
|
23
|
-
this.options = options;
|
|
26
|
+
this.options = options || [];
|
|
24
27
|
this.shell = shell;
|
|
25
28
|
this.terminal = terminal;
|
|
26
29
|
this.stdin = stdin;
|
|
27
30
|
this.stdout = stdout;
|
|
28
31
|
this.stderr = stderr;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
const useUnifiedParser = this.options.length > 0;
|
|
33
|
+
if (useUnifiedParser) {
|
|
34
|
+
const unifiedRun = run;
|
|
35
|
+
this.run = async (pid, argv) => {
|
|
36
|
+
if (argv === null)
|
|
37
|
+
return 1;
|
|
38
|
+
const process = this.kernel.processes.get(pid);
|
|
39
|
+
try {
|
|
40
|
+
const parsed = parseArgs(this.options, { argv, stopAtFirstUnknown: true });
|
|
41
|
+
if (parsed.help) {
|
|
42
|
+
await writelnStdout(process, this.terminal, this.usage);
|
|
43
|
+
return 0;
|
|
44
|
+
}
|
|
45
|
+
return await unifiedRun(parsed, process, argv);
|
|
38
46
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
catch (error) {
|
|
48
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
49
|
+
if (errorMessage.includes('UNKNOWN_OPTION') || errorMessage.includes('Unknown option')) {
|
|
50
|
+
return await unifiedRun({}, process, argv);
|
|
51
|
+
}
|
|
52
|
+
await writelnStderr(process, this.terminal, chalk.red(errorMessage));
|
|
53
|
+
return 1;
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
const rawRun = run;
|
|
59
|
+
this.run = async (pid, argv) => {
|
|
60
|
+
if (argv === null)
|
|
61
|
+
return 1;
|
|
62
|
+
return await rawRun(pid, argv);
|
|
63
|
+
};
|
|
64
|
+
}
|
|
46
65
|
}
|
|
47
66
|
get usage() {
|
|
67
|
+
if (this.options.length === 0) {
|
|
68
|
+
return '';
|
|
69
|
+
}
|
|
48
70
|
return parseUsage([
|
|
49
71
|
{ header: this.command, content: this.description },
|
|
50
72
|
{ header: 'Usage', content: this.usageContent },
|
|
@@ -52,6 +74,9 @@ export class TerminalCommand {
|
|
|
52
74
|
]);
|
|
53
75
|
}
|
|
54
76
|
get usageContent() {
|
|
77
|
+
if (this.options.length === 0) {
|
|
78
|
+
return '';
|
|
79
|
+
}
|
|
55
80
|
return `${this.command} ${this.options.map(option => {
|
|
56
81
|
let optionStr = option.name;
|
|
57
82
|
if (option.type === Boolean)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-command.js","sourceRoot":"","sources":["../../src/shared/terminal-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,SAAmD,MAAM,mBAAmB,CAAA;AACnF,OAAO,UAAU,MAAM,oBAAoB,CAAA;AAG3C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"terminal-command.js","sourceRoot":"","sources":["../../src/shared/terminal-command.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ecmaos/coreutils",
|
|
3
3
|
"description": "ecmaOS: Core utilities for the ecmaOS framework",
|
|
4
|
-
"version": "0.1
|
|
4
|
+
"version": "0.2.1",
|
|
5
5
|
"license": "MIT+Apache-2.0",
|
|
6
6
|
"homepage": "https://ecmaos.sh",
|
|
7
7
|
"repository": "https://github.com/ecmaos/ecmaos",
|
|
@@ -26,13 +26,15 @@
|
|
|
26
26
|
"@zip.js/zip.js": "^2.7.52",
|
|
27
27
|
"ansi-escape-sequences": "^6.2.4",
|
|
28
28
|
"chalk": "^5.3.0",
|
|
29
|
+
"columnify": "^1.6.0",
|
|
29
30
|
"command-line-args": "^6.0.0",
|
|
30
31
|
"command-line-usage": "^7.0.3",
|
|
31
32
|
"human-format": "^1.2.1",
|
|
32
|
-
"@ecmaos/types": "^0.
|
|
33
|
+
"@ecmaos/types": "^0.5.1"
|
|
33
34
|
},
|
|
34
35
|
"devDependencies": {
|
|
35
36
|
"@types/ansi-escape-sequences": "^4.0.4",
|
|
37
|
+
"@types/columnify": "^1.5.4",
|
|
36
38
|
"@types/command-line-args": "^5.2.3",
|
|
37
39
|
"@types/command-line-usage": "^5.0.4"
|
|
38
40
|
},
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import path from 'path'
|
|
2
|
+
import type { Kernel, Process, Shell, Terminal } from '@ecmaos/types'
|
|
3
|
+
import { TerminalCommand } from '../shared/terminal-command.js'
|
|
4
|
+
import { writelnStderr } from '../shared/helpers.js'
|
|
5
|
+
|
|
6
|
+
function printUsage(process: Process | undefined, terminal: Terminal): void {
|
|
7
|
+
const usage = `Usage: basename NAME [SUFFIX]
|
|
8
|
+
basename OPTION... NAME...
|
|
9
|
+
Strip directory and suffix from filenames.
|
|
10
|
+
|
|
11
|
+
-s, --suffix=SUFFIX remove a trailing SUFFIX
|
|
12
|
+
--help display this help and exit`
|
|
13
|
+
writelnStderr(process, terminal, usage)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal): TerminalCommand {
|
|
17
|
+
return new TerminalCommand({
|
|
18
|
+
command: 'basename',
|
|
19
|
+
description: 'Strip directory and suffix from filenames',
|
|
20
|
+
kernel,
|
|
21
|
+
shell,
|
|
22
|
+
terminal,
|
|
23
|
+
run: async (pid: number, argv: string[]) => {
|
|
24
|
+
const process = kernel.processes.get(pid) as Process | undefined
|
|
25
|
+
|
|
26
|
+
if (!process) return 1
|
|
27
|
+
|
|
28
|
+
if (argv.length > 0 && (argv[0] === '--help' || argv[0] === '-h')) {
|
|
29
|
+
printUsage(process, terminal)
|
|
30
|
+
return 0
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let suffix: string | undefined
|
|
34
|
+
const paths: string[] = []
|
|
35
|
+
let i = 0
|
|
36
|
+
|
|
37
|
+
while (i < argv.length) {
|
|
38
|
+
const arg = argv[i]
|
|
39
|
+
if (!arg) {
|
|
40
|
+
i++
|
|
41
|
+
continue
|
|
42
|
+
}
|
|
43
|
+
if (arg === '-s' || arg === '--suffix') {
|
|
44
|
+
if (i + 1 < argv.length) {
|
|
45
|
+
suffix = argv[++i]
|
|
46
|
+
} else {
|
|
47
|
+
await writelnStderr(process, terminal, 'basename: option requires an argument -- \'s\'')
|
|
48
|
+
return 1
|
|
49
|
+
}
|
|
50
|
+
} else if (arg.startsWith('--suffix=')) {
|
|
51
|
+
suffix = arg.slice(9)
|
|
52
|
+
} else if (arg.startsWith('-s')) {
|
|
53
|
+
suffix = arg.slice(2)
|
|
54
|
+
} else if (!arg.startsWith('-')) {
|
|
55
|
+
paths.push(arg)
|
|
56
|
+
}
|
|
57
|
+
i++
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (paths.length === 0) {
|
|
61
|
+
await writelnStderr(process, terminal, 'basename: missing operand')
|
|
62
|
+
return 1
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const writer = process.stdout.getWriter()
|
|
66
|
+
|
|
67
|
+
try {
|
|
68
|
+
for (const filePath of paths) {
|
|
69
|
+
let basename = path.basename(filePath)
|
|
70
|
+
|
|
71
|
+
if (suffix && basename.endsWith(suffix)) {
|
|
72
|
+
basename = basename.slice(0, -suffix.length)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
await writer.write(new TextEncoder().encode(basename + '\n'))
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return 0
|
|
79
|
+
} finally {
|
|
80
|
+
writer.releaseLock()
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
})
|
|
84
|
+
}
|