@ecmaos/coreutils 0.5.3 → 0.6.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +19 -0
- package/dist/commands/history.d.ts +4 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +157 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/ls.js +1 -1
- package/dist/commands/tty.d.ts +4 -0
- package/dist/commands/tty.d.ts.map +1 -0
- package/dist/commands/tty.js +60 -0
- package/dist/commands/tty.js.map +1 -0
- package/dist/commands/vim.d.ts +4 -0
- package/dist/commands/vim.d.ts.map +1 -0
- package/dist/commands/vim.js +272 -0
- package/dist/commands/vim.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/src/commands/history.ts +172 -0
- package/src/commands/ls.ts +1 -1
- package/src/commands/tty.ts +68 -0
- package/src/commands/vim.ts +307 -0
- package/src/index.ts +9 -0
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @ecmaos/coreutils
|
|
2
2
|
|
|
3
|
+
## 0.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- a1c1dd9: tty and history coreutils; now use .history file; fix code app file saving
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [a1c1dd9]
|
|
12
|
+
- @ecmaos/types@0.8.1
|
|
13
|
+
|
|
14
|
+
## 0.5.4
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- 1600ef1: multi-TTY support; mobile improvements (WIP)
|
|
19
|
+
- Updated dependencies [1600ef1]
|
|
20
|
+
- @ecmaos/types@0.8.0
|
|
21
|
+
|
|
3
22
|
## 0.5.3
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
|
@@ -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=history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/commands/history.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;AAsD/D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CAmH/F"}
|
|
@@ -0,0 +1,157 @@
|
|
|
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: history [OPTION]... [N]
|
|
6
|
+
Display or manipulate the command history.
|
|
7
|
+
|
|
8
|
+
N display the last N entries
|
|
9
|
+
-c clear the history list
|
|
10
|
+
-d N delete the history entry at position N
|
|
11
|
+
-r reload the history file (useful after manual edits)
|
|
12
|
+
--help display this help and exit
|
|
13
|
+
|
|
14
|
+
If N is provided without options, display the last N entries.
|
|
15
|
+
If no arguments are provided, display all history entries.
|
|
16
|
+
|
|
17
|
+
Note: History is automatically saved on each command execution.`;
|
|
18
|
+
writelnStderr(process, terminal, usage);
|
|
19
|
+
}
|
|
20
|
+
async function readHistoryFile(shell, kernel) {
|
|
21
|
+
const home = shell.env.get('HOME') || '/root';
|
|
22
|
+
const historyPath = path.join(home, '.history');
|
|
23
|
+
try {
|
|
24
|
+
if (!kernel.filesystem?.fs) {
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
const exists = await kernel.filesystem.fs.exists(historyPath);
|
|
28
|
+
if (!exists) {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
const content = await kernel.filesystem.fs.readFile(historyPath, 'utf-8');
|
|
32
|
+
const lines = content.split('\n').filter(line => line.length > 0);
|
|
33
|
+
return lines;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async function writeHistoryFile(shell, kernel, lines) {
|
|
40
|
+
const home = shell.env.get('HOME') || '/root';
|
|
41
|
+
const historyPath = path.join(home, '.history');
|
|
42
|
+
if (!kernel.filesystem?.fs) {
|
|
43
|
+
throw new Error('Filesystem not available');
|
|
44
|
+
}
|
|
45
|
+
const content = lines.join('\n');
|
|
46
|
+
await kernel.filesystem.fs.writeFile(historyPath, content, 'utf-8');
|
|
47
|
+
}
|
|
48
|
+
export function createCommand(kernel, shell, terminal) {
|
|
49
|
+
return new TerminalCommand({
|
|
50
|
+
command: 'history',
|
|
51
|
+
description: 'Display or manipulate the command history',
|
|
52
|
+
kernel,
|
|
53
|
+
shell,
|
|
54
|
+
terminal,
|
|
55
|
+
run: async (pid, argv) => {
|
|
56
|
+
const process = kernel.processes.get(pid);
|
|
57
|
+
if (!process)
|
|
58
|
+
return 1;
|
|
59
|
+
if (argv.length > 0 && (argv[0] === '--help' || argv[0] === '-h')) {
|
|
60
|
+
printUsage(process, terminal);
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
const writer = process.stdout.getWriter();
|
|
64
|
+
try {
|
|
65
|
+
let clearHistory = false;
|
|
66
|
+
let deleteIndex = null;
|
|
67
|
+
let readHistory = false;
|
|
68
|
+
let numEntries = null;
|
|
69
|
+
for (let i = 0; i < argv.length; i++) {
|
|
70
|
+
const arg = argv[i];
|
|
71
|
+
if (!arg)
|
|
72
|
+
continue;
|
|
73
|
+
if (arg === '-c') {
|
|
74
|
+
clearHistory = true;
|
|
75
|
+
}
|
|
76
|
+
else if (arg === '-r') {
|
|
77
|
+
readHistory = true;
|
|
78
|
+
}
|
|
79
|
+
else if (arg === '-d') {
|
|
80
|
+
if (i + 1 < argv.length) {
|
|
81
|
+
i++;
|
|
82
|
+
const nextArg = argv[i];
|
|
83
|
+
if (nextArg !== undefined) {
|
|
84
|
+
const index = parseInt(nextArg, 10);
|
|
85
|
+
if (!isNaN(index)) {
|
|
86
|
+
deleteIndex = index;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
await writelnStderr(process, terminal, `history: invalid history number '${nextArg}'`);
|
|
90
|
+
return 1;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
await writelnStderr(process, terminal, 'history: -d requires a history number');
|
|
96
|
+
return 1;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else if (!arg.startsWith('-')) {
|
|
100
|
+
const num = parseInt(arg, 10);
|
|
101
|
+
if (!isNaN(num)) {
|
|
102
|
+
numEntries = num;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (clearHistory) {
|
|
107
|
+
const uid = shell.credentials.uid;
|
|
108
|
+
await terminal.clearHistory(uid);
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
if (deleteIndex !== null) {
|
|
112
|
+
const lines = await readHistoryFile(shell, kernel);
|
|
113
|
+
if (deleteIndex < 1 || deleteIndex > lines.length) {
|
|
114
|
+
await writelnStderr(process, terminal, `history: history number '${deleteIndex}' out of range`);
|
|
115
|
+
return 1;
|
|
116
|
+
}
|
|
117
|
+
const newLines = lines.filter((_, index) => index !== deleteIndex - 1);
|
|
118
|
+
await writeHistoryFile(shell, kernel, newLines);
|
|
119
|
+
const uid = shell.credentials.uid;
|
|
120
|
+
await terminal.reloadHistory(uid).catch(() => { });
|
|
121
|
+
return 0;
|
|
122
|
+
}
|
|
123
|
+
if (readHistory) {
|
|
124
|
+
const uid = shell.credentials.uid;
|
|
125
|
+
await terminal.reloadHistory(uid).catch(() => { });
|
|
126
|
+
return 0;
|
|
127
|
+
}
|
|
128
|
+
const lines = await readHistoryFile(shell, kernel);
|
|
129
|
+
if (lines.length === 0) {
|
|
130
|
+
return 0;
|
|
131
|
+
}
|
|
132
|
+
const displayLines = numEntries !== null
|
|
133
|
+
? lines.slice(-numEntries)
|
|
134
|
+
: lines;
|
|
135
|
+
const startIndex = numEntries !== null
|
|
136
|
+
? lines.length - numEntries + 1
|
|
137
|
+
: 1;
|
|
138
|
+
for (let i = 0; i < displayLines.length; i++) {
|
|
139
|
+
const lineNumber = startIndex + i;
|
|
140
|
+
const line = displayLines[i];
|
|
141
|
+
const output = ` ${lineNumber} ${line}\n`;
|
|
142
|
+
await writer.write(new TextEncoder().encode(output));
|
|
143
|
+
}
|
|
144
|
+
return 0;
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
148
|
+
await writelnStderr(process, terminal, `history: ${errorMessage}`);
|
|
149
|
+
return 1;
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
writer.releaseLock();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.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;;;;;;;;;;;;gEAYgD,CAAA;IAC9D,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;AACzC,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,KAAY,EAAE,MAAc;IACzD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAA;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAE/C,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAC7D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,CAAA;QACX,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACzE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACjE,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,KAAY,EAAE,MAAc,EAAE,KAAe;IAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,CAAA;IAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAE/C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChC,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AACrE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,KAAY,EAAE,QAAkB;IAC5E,OAAO,IAAI,eAAe,CAAC;QACzB,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,2CAA2C;QACxD,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,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;YAEzC,IAAI,CAAC;gBACH,IAAI,YAAY,GAAG,KAAK,CAAA;gBACxB,IAAI,WAAW,GAAkB,IAAI,CAAA;gBACrC,IAAI,WAAW,GAAG,KAAK,CAAA;gBACvB,IAAI,UAAU,GAAkB,IAAI,CAAA;gBAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;oBACnB,IAAI,CAAC,GAAG;wBAAE,SAAQ;oBAElB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;wBACjB,YAAY,GAAG,IAAI,CAAA;oBACrB,CAAC;yBAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;wBACxB,WAAW,GAAG,IAAI,CAAA;oBACpB,CAAC;yBAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;wBACxB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;4BACxB,CAAC,EAAE,CAAA;4BACH,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;4BACvB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gCAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;gCACnC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;oCAClB,WAAW,GAAG,KAAK,CAAA;gCACrB,CAAC;qCAAM,CAAC;oCACN,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,oCAAoC,OAAO,GAAG,CAAC,CAAA;oCACtF,OAAO,CAAC,CAAA;gCACV,CAAC;4BACH,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,uCAAuC,CAAC,CAAA;4BAC/E,OAAO,CAAC,CAAA;wBACV,CAAC;oBACH,CAAC;yBAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;wBAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;4BAChB,UAAU,GAAG,GAAG,CAAA;wBAClB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAA;oBACjC,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;oBAChC,OAAO,CAAC,CAAA;gBACV,CAAC;gBAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;oBACzB,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;oBAClD,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;wBAClD,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,4BAA4B,WAAW,gBAAgB,CAAC,CAAA;wBAC/F,OAAO,CAAC,CAAA;oBACV,CAAC;oBACD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,WAAW,GAAG,CAAC,CAAC,CAAA;oBACtE,MAAM,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;oBAE/C,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAA;oBACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;oBACjD,OAAO,CAAC,CAAA;gBACV,CAAC;gBAED,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAA;oBACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;oBACjD,OAAO,CAAC,CAAA;gBACV,CAAC;gBAED,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;gBAElD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,OAAO,CAAC,CAAA;gBACV,CAAC;gBAED,MAAM,YAAY,GAAG,UAAU,KAAK,IAAI;oBACtC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;oBAC1B,CAAC,CAAC,KAAK,CAAA;gBAET,MAAM,UAAU,GAAG,UAAU,KAAK,IAAI;oBACpC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,GAAG,CAAC;oBAC/B,CAAC,CAAC,CAAC,CAAA;gBAEL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7C,MAAM,UAAU,GAAG,UAAU,GAAG,CAAC,CAAA;oBACjC,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;oBAC5B,MAAM,MAAM,GAAG,KAAK,UAAU,KAAK,IAAI,IAAI,CAAA;oBAC3C,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;gBACtD,CAAC;gBAED,OAAO,CAAC,CAAA;YACV,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC3E,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,YAAY,EAAE,CAAC,CAAA;gBAClE,OAAO,CAAC,CAAA;YACV,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,WAAW,EAAE,CAAA;YACtB,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/commands/ls.js
CHANGED
|
@@ -11,7 +11,7 @@ List information about the FILEs (the current directory by default).
|
|
|
11
11
|
--help display this help and exit`;
|
|
12
12
|
writelnStderr(process, terminal, usage);
|
|
13
13
|
}
|
|
14
|
-
function truncateInfo(text, maxWidth =
|
|
14
|
+
function truncateInfo(text, maxWidth = 35) {
|
|
15
15
|
if (!text)
|
|
16
16
|
return text;
|
|
17
17
|
// Strip ANSI codes to get visible length
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tty.d.ts","sourceRoot":"","sources":["../../src/commands/tty.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;AAe/D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CAmD/F"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { TerminalCommand } from '../shared/terminal-command.js';
|
|
2
|
+
import { writelnStderr, writelnStdout } from '../shared/helpers.js';
|
|
3
|
+
function printUsage(process, terminal) {
|
|
4
|
+
const usage = `Usage: tty [TTY_NUMBER]
|
|
5
|
+
Print the current TTY number or switch to a different TTY.
|
|
6
|
+
|
|
7
|
+
TTY_NUMBER switch to the specified TTY (0-9)
|
|
8
|
+
--help display this help and exit
|
|
9
|
+
|
|
10
|
+
If no TTY_NUMBER is provided, prints the current TTY number.
|
|
11
|
+
If TTY_NUMBER is provided, switches to that TTY.`;
|
|
12
|
+
writelnStderr(process, terminal, usage);
|
|
13
|
+
}
|
|
14
|
+
export function createCommand(kernel, shell, terminal) {
|
|
15
|
+
return new TerminalCommand({
|
|
16
|
+
command: 'tty',
|
|
17
|
+
description: 'Print the current TTY number or switch to a different TTY',
|
|
18
|
+
kernel,
|
|
19
|
+
shell,
|
|
20
|
+
terminal,
|
|
21
|
+
run: async (pid, argv) => {
|
|
22
|
+
const process = kernel.processes.get(pid);
|
|
23
|
+
if (!process)
|
|
24
|
+
return 1;
|
|
25
|
+
if (argv.length > 0 && (argv[0] === '--help' || argv[0] === '-h')) {
|
|
26
|
+
printUsage(process, terminal);
|
|
27
|
+
return 0;
|
|
28
|
+
}
|
|
29
|
+
if (argv.length === 0) {
|
|
30
|
+
await writelnStdout(process, terminal, kernel.activeTty.toString());
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
if (argv.length > 1) {
|
|
34
|
+
await writelnStderr(process, terminal, 'tty: too many arguments');
|
|
35
|
+
await writelnStderr(process, terminal, "Try 'tty --help' for more information.");
|
|
36
|
+
return 1;
|
|
37
|
+
}
|
|
38
|
+
const ttyNumber = parseInt(argv[0] ?? '0', 10);
|
|
39
|
+
if (isNaN(ttyNumber)) {
|
|
40
|
+
await writelnStderr(process, terminal, `tty: invalid TTY number '${argv[0]}'`);
|
|
41
|
+
await writelnStderr(process, terminal, "Try 'tty --help' for more information.");
|
|
42
|
+
return 1;
|
|
43
|
+
}
|
|
44
|
+
if (ttyNumber < 0 || ttyNumber > 9) {
|
|
45
|
+
await writelnStderr(process, terminal, `tty: TTY number must be between 0 and 9`);
|
|
46
|
+
await writelnStderr(process, terminal, "Try 'tty --help' for more information.");
|
|
47
|
+
return 1;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
await kernel.switchTty(ttyNumber);
|
|
51
|
+
return 0;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
await writelnStderr(process, terminal, `tty: failed to switch to TTY ${ttyNumber}: ${error instanceof Error ? error.message : String(error)}`);
|
|
55
|
+
return 1;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=tty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tty.js","sourceRoot":"","sources":["../../src/commands/tty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEnE,SAAS,UAAU,CAAC,OAA4B,EAAE,QAAkB;IAClE,MAAM,KAAK,GAAG;;;;;;;iDAOiC,CAAA;IAC/C,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,KAAK;QACd,WAAW,EAAE,2DAA2D;QACxE,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,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;gBACnE,OAAO,CAAC,CAAA;YACV,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,yBAAyB,CAAC,CAAA;gBACjE,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,wCAAwC,CAAC,CAAA;gBAChF,OAAO,CAAC,CAAA;YACV,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAA;YAE9C,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrB,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,4BAA4B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC9E,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,wCAAwC,CAAC,CAAA;gBAChF,OAAO,CAAC,CAAA;YACV,CAAC;YAED,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBACnC,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,yCAAyC,CAAC,CAAA;gBACjF,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,wCAAwC,CAAC,CAAA;gBAChF,OAAO,CAAC,CAAA;YACV,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;gBACjC,OAAO,CAAC,CAAA;YACV,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,gCAAgC,SAAS,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBAC9I,OAAO,CAAC,CAAA;YACV,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vim.d.ts","sourceRoot":"","sources":["../../src/commands/vim.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;AAgB/D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CAgS/F"}
|
|
@@ -0,0 +1,272 @@
|
|
|
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: vim [OPTION]... [FILE]...
|
|
6
|
+
Vi IMproved - a text editor.
|
|
7
|
+
|
|
8
|
+
FILE file(s) to edit
|
|
9
|
+
--help, -h display this help and exit
|
|
10
|
+
|
|
11
|
+
Examples:
|
|
12
|
+
vim file.txt edit file.txt
|
|
13
|
+
vim file1.txt file2.txt edit multiple files`;
|
|
14
|
+
writelnStderr(process, terminal, usage);
|
|
15
|
+
}
|
|
16
|
+
export function createCommand(kernel, shell, terminal) {
|
|
17
|
+
return new TerminalCommand({
|
|
18
|
+
command: 'vim',
|
|
19
|
+
description: 'Vi IMproved - a text editor',
|
|
20
|
+
kernel,
|
|
21
|
+
shell,
|
|
22
|
+
terminal,
|
|
23
|
+
run: async (pid, argv) => {
|
|
24
|
+
const process = kernel.processes.get(pid);
|
|
25
|
+
if (!process)
|
|
26
|
+
return 1;
|
|
27
|
+
if (argv.length > 0 && (argv[0] === '--help' || argv[0] === '-h')) {
|
|
28
|
+
printUsage(process, terminal);
|
|
29
|
+
return 0;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const { VimWasm, checkBrowserCompatibility } = await import('vim-wasm/vimwasm.js');
|
|
33
|
+
const compatibilityError = checkBrowserCompatibility();
|
|
34
|
+
if (compatibilityError !== undefined) {
|
|
35
|
+
await writelnStderr(process, terminal, `vim: ${compatibilityError}`);
|
|
36
|
+
return 1;
|
|
37
|
+
}
|
|
38
|
+
const files = [];
|
|
39
|
+
for (const arg of argv) {
|
|
40
|
+
if (arg && !arg.startsWith('-')) {
|
|
41
|
+
files.push(arg);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (files.length === 0) {
|
|
45
|
+
await writelnStderr(process, terminal, 'vim: no file specified');
|
|
46
|
+
await writelnStderr(process, terminal, "Try 'vim --help' for more information.");
|
|
47
|
+
return 1;
|
|
48
|
+
}
|
|
49
|
+
const fileContents = {};
|
|
50
|
+
const dirs = new Set();
|
|
51
|
+
const cmdArgs = [];
|
|
52
|
+
const cwd = shell.cwd;
|
|
53
|
+
let currentCwd = cwd;
|
|
54
|
+
while (currentCwd !== '/' && currentCwd !== '') {
|
|
55
|
+
dirs.add(currentCwd);
|
|
56
|
+
currentCwd = path.dirname(currentCwd);
|
|
57
|
+
}
|
|
58
|
+
const homeDir = shell.expandTilde('~');
|
|
59
|
+
if (homeDir && homeDir !== '~') {
|
|
60
|
+
let currentDir = homeDir;
|
|
61
|
+
while (currentDir !== '/' && currentDir !== '') {
|
|
62
|
+
dirs.add(currentDir);
|
|
63
|
+
currentDir = path.dirname(currentDir);
|
|
64
|
+
}
|
|
65
|
+
const vimrcPath = path.join(homeDir, '.vim', 'vimrc');
|
|
66
|
+
const vimrcExists = await shell.context.fs.promises.exists(vimrcPath);
|
|
67
|
+
if (vimrcExists) {
|
|
68
|
+
const vimrcContent = await shell.context.fs.promises.readFile(vimrcPath, 'utf-8');
|
|
69
|
+
const vimrcVirtualPath = '/home/web_user/.vim/vimrc';
|
|
70
|
+
fileContents[vimrcVirtualPath] = vimrcContent;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
for (const file of files) {
|
|
74
|
+
const expandedPath = shell.expandTilde(file);
|
|
75
|
+
const fullPath = path.resolve(shell.cwd, expandedPath);
|
|
76
|
+
const exists = await shell.context.fs.promises.exists(fullPath);
|
|
77
|
+
if (exists) {
|
|
78
|
+
const stats = await shell.context.fs.promises.stat(fullPath);
|
|
79
|
+
if (stats.isDirectory()) {
|
|
80
|
+
await writelnStderr(process, terminal, `vim: ${file}: Is a directory`);
|
|
81
|
+
return 1;
|
|
82
|
+
}
|
|
83
|
+
const content = await shell.context.fs.promises.readFile(fullPath, 'utf-8');
|
|
84
|
+
fileContents[fullPath] = content;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
fileContents[fullPath] = '';
|
|
88
|
+
}
|
|
89
|
+
const dir = path.dirname(fullPath);
|
|
90
|
+
let currentDir = dir;
|
|
91
|
+
while (currentDir !== '/' && currentDir !== '') {
|
|
92
|
+
dirs.add(currentDir);
|
|
93
|
+
currentDir = path.dirname(currentDir);
|
|
94
|
+
}
|
|
95
|
+
cmdArgs.push(fullPath);
|
|
96
|
+
}
|
|
97
|
+
const emscriptenDefaultDirs = new Set(['/', '/tmp', '/home', '/home/web_user', '/home/web_user/.vim', '/dev']);
|
|
98
|
+
const dirsArray = Array.from(dirs)
|
|
99
|
+
.filter(d => !emscriptenDefaultDirs.has(d))
|
|
100
|
+
.sort((a, b) => a.length - b.length);
|
|
101
|
+
const container = document.createElement('div');
|
|
102
|
+
container.style.width = '100%';
|
|
103
|
+
container.style.height = '100%';
|
|
104
|
+
container.style.display = 'flex';
|
|
105
|
+
container.style.flexDirection = 'column';
|
|
106
|
+
container.style.background = '#1e1e1e';
|
|
107
|
+
container.style.overflow = 'hidden';
|
|
108
|
+
const canvas = document.createElement('canvas');
|
|
109
|
+
canvas.id = 'vim-canvas';
|
|
110
|
+
canvas.style.width = '100%';
|
|
111
|
+
canvas.style.height = '100%';
|
|
112
|
+
canvas.style.flex = '1';
|
|
113
|
+
const input = document.createElement('input');
|
|
114
|
+
input.id = 'vim-input';
|
|
115
|
+
input.type = 'text';
|
|
116
|
+
input.autocomplete = 'off';
|
|
117
|
+
input.autofocus = true;
|
|
118
|
+
input.style.position = 'absolute';
|
|
119
|
+
input.style.left = '-9999px';
|
|
120
|
+
input.style.width = '1px';
|
|
121
|
+
input.style.height = '1px';
|
|
122
|
+
input.style.opacity = '0';
|
|
123
|
+
container.appendChild(canvas);
|
|
124
|
+
container.appendChild(input);
|
|
125
|
+
const firstFile = files.length > 0 ? files[0] : undefined;
|
|
126
|
+
const windowTitle = firstFile ? path.basename(firstFile) : 'vim';
|
|
127
|
+
const win = kernel.windows.create({
|
|
128
|
+
title: windowTitle,
|
|
129
|
+
width: 900,
|
|
130
|
+
height: 700,
|
|
131
|
+
max: false
|
|
132
|
+
});
|
|
133
|
+
win.mount(container);
|
|
134
|
+
let workerScriptPath;
|
|
135
|
+
try {
|
|
136
|
+
workerScriptPath = new URL('vim-wasm/vim.js', import.meta.url).href;
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
await writelnStderr(process, terminal, 'vim: failed to resolve worker script path. Please ensure vim-wasm is properly installed.');
|
|
140
|
+
win.close();
|
|
141
|
+
return 1;
|
|
142
|
+
}
|
|
143
|
+
const vim = new VimWasm({
|
|
144
|
+
canvas,
|
|
145
|
+
input,
|
|
146
|
+
workerScriptPath
|
|
147
|
+
});
|
|
148
|
+
let exitCode = 0;
|
|
149
|
+
let vimExited = false;
|
|
150
|
+
let resizeObserver = null;
|
|
151
|
+
vim.onFileExport = async (fullpath, contents) => {
|
|
152
|
+
try {
|
|
153
|
+
const text = new TextDecoder().decode(contents);
|
|
154
|
+
await shell.context.fs.promises.writeFile(fullpath, text, 'utf-8');
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
await writelnStderr(process, terminal, `vim: error writing file ${fullpath}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
vim.onVimExit = (status) => {
|
|
161
|
+
vimExited = true;
|
|
162
|
+
exitCode = status === 0 ? 0 : 1;
|
|
163
|
+
if (resizeObserver) {
|
|
164
|
+
resizeObserver.disconnect();
|
|
165
|
+
resizeObserver = null;
|
|
166
|
+
}
|
|
167
|
+
win.close();
|
|
168
|
+
};
|
|
169
|
+
vim.onError = async (err) => {
|
|
170
|
+
console.error('[vim] Error callback triggered:', err);
|
|
171
|
+
console.error('[vim] Error message:', err.message);
|
|
172
|
+
console.error('[vim] Error stack:', err.stack);
|
|
173
|
+
await writelnStderr(process, terminal, `vim: error: ${err.message}`);
|
|
174
|
+
if (!vimExited) {
|
|
175
|
+
exitCode = 1;
|
|
176
|
+
if (resizeObserver) {
|
|
177
|
+
resizeObserver.disconnect();
|
|
178
|
+
resizeObserver = null;
|
|
179
|
+
}
|
|
180
|
+
win.close();
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
vim.onTitleUpdate = (title) => {
|
|
184
|
+
win.setTitle(title || windowTitle);
|
|
185
|
+
};
|
|
186
|
+
vim.onVimInit = async () => {
|
|
187
|
+
try {
|
|
188
|
+
await vim.cmdline('autocmd BufWritePost * :export');
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
console.error('[vim] Failed to set up auto-export:', error);
|
|
192
|
+
}
|
|
193
|
+
const handleResize = () => {
|
|
194
|
+
if (vimExited || !vim.isRunning())
|
|
195
|
+
return;
|
|
196
|
+
const rect = container.getBoundingClientRect();
|
|
197
|
+
const width = Math.floor(rect.width);
|
|
198
|
+
const height = Math.floor(rect.height);
|
|
199
|
+
if (width > 0 && height > 0) {
|
|
200
|
+
const dpr = window.devicePixelRatio || 1;
|
|
201
|
+
canvas.width = width * dpr;
|
|
202
|
+
canvas.height = height * dpr;
|
|
203
|
+
vim.resize(width, height);
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
resizeObserver = new ResizeObserver(handleResize);
|
|
207
|
+
resizeObserver.observe(container);
|
|
208
|
+
};
|
|
209
|
+
for (const filePath of Object.keys(fileContents)) {
|
|
210
|
+
const parentDir = path.dirname(filePath);
|
|
211
|
+
if (!dirsArray.includes(parentDir)) {
|
|
212
|
+
console.warn(`[vim] WARNING: Parent directory ${parentDir} of file ${filePath} is not in dirs array!`);
|
|
213
|
+
}
|
|
214
|
+
if (dirsArray.includes(filePath)) {
|
|
215
|
+
console.error(`[vim] ERROR: File path ${filePath} is also in dirs array! This will cause ENOTDIR error.`);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
for (const dirPath of dirsArray) {
|
|
219
|
+
if (fileContents[dirPath] !== undefined) {
|
|
220
|
+
console.error(`[vim] ERROR: Directory path ${dirPath} is also in files object! This will cause ENOTDIR error.`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
for (let i = 0; i < dirsArray.length; i++) {
|
|
224
|
+
const dir = dirsArray[i];
|
|
225
|
+
if (dir) {
|
|
226
|
+
const parent = path.dirname(dir);
|
|
227
|
+
if (parent !== dir && !dirsArray.slice(0, i).includes(parent)) {
|
|
228
|
+
console.warn(`[vim] WARNING: Directory ${dir} has parent ${parent} that comes after it in the array!`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
try {
|
|
233
|
+
const startOptions = {
|
|
234
|
+
files: fileContents,
|
|
235
|
+
dirs: dirsArray,
|
|
236
|
+
cmdArgs,
|
|
237
|
+
debug: false
|
|
238
|
+
};
|
|
239
|
+
vim.start(startOptions);
|
|
240
|
+
}
|
|
241
|
+
catch (startError) {
|
|
242
|
+
console.error('[vim] Error calling vim.start():', startError);
|
|
243
|
+
await writelnStderr(process, terminal, `vim: failed to start: ${startError instanceof Error ? startError.message : 'Unknown error'}`);
|
|
244
|
+
if (startError instanceof Error && startError.stack) {
|
|
245
|
+
console.error('[vim] Start error stack:', startError.stack);
|
|
246
|
+
}
|
|
247
|
+
win.close();
|
|
248
|
+
return 1;
|
|
249
|
+
}
|
|
250
|
+
return new Promise((resolve) => {
|
|
251
|
+
const checkExit = () => {
|
|
252
|
+
if (vimExited) {
|
|
253
|
+
resolve(exitCode);
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
setTimeout(checkExit, 100);
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
checkExit();
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
await writelnStderr(process, terminal, `vim: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
264
|
+
if (error instanceof Error && error.stack) {
|
|
265
|
+
console.error(error.stack);
|
|
266
|
+
}
|
|
267
|
+
return 1;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=vim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vim.js","sourceRoot":"","sources":["../../src/commands/vim.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export { createCommand as createFetch } from './commands/fetch.js';
|
|
|
15
15
|
export { createCommand as createGrep } from './commands/grep.js';
|
|
16
16
|
export { createCommand as createGroups } from './commands/groups.js';
|
|
17
17
|
export { createCommand as createHash } from './commands/hash.js';
|
|
18
|
+
export { createCommand as createHistory } from './commands/history.js';
|
|
18
19
|
export { createCommand as createLn } from './commands/ln.js';
|
|
19
20
|
export { createCommand as createLs } from './commands/ls.js';
|
|
20
21
|
export { createCommand as createMkdir } from './commands/mkdir.js';
|
|
@@ -63,6 +64,7 @@ export { createCommand as createSleep } from './commands/sleep.js';
|
|
|
63
64
|
export { createCommand as createSort } from './commands/sort.js';
|
|
64
65
|
export { createCommand as createTest } from './commands/test.js';
|
|
65
66
|
export { createCommand as createTr } from './commands/tr.js';
|
|
67
|
+
export { createCommand as createTty } from './commands/tty.js';
|
|
66
68
|
export { createCommand as createUname } from './commands/uname.js';
|
|
67
69
|
export { createCommand as createUmount } from './commands/umount.js';
|
|
68
70
|
export { createCommand as createUptime } from './commands/uptime.js';
|
|
@@ -76,6 +78,7 @@ export { createCommand as createZip } from './commands/zip.js';
|
|
|
76
78
|
export { createCommand as createUnzip } from './commands/unzip.js';
|
|
77
79
|
export { createCommand as createVideo } from './commands/video.js';
|
|
78
80
|
export { createCommand as createView } from './commands/view.js';
|
|
81
|
+
export { createCommand as createVim } from './commands/vim.js';
|
|
79
82
|
export { createCommand as createGit } from './commands/git.js';
|
|
80
83
|
/**
|
|
81
84
|
* Creates all coreutils commands.
|
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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"}
|