@ecmaos/coreutils 0.1.4 → 0.1.5

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.
@@ -4,33 +4,84 @@ import { writelnStdout, writelnStderr } from '../shared/helpers.js';
4
4
  export function createCommand(kernel, shell, terminal) {
5
5
  return new TerminalCommand({
6
6
  command: 'hex',
7
- description: 'Display file contents in hexadecimal format',
7
+ description: 'Display file contents or stdin in hexadecimal format',
8
8
  kernel,
9
9
  shell,
10
10
  terminal,
11
11
  options: [
12
12
  { name: 'help', type: Boolean, description: kernel.i18n.t('Display help') },
13
- { name: 'path', type: String, typeLabel: '{underline path}', defaultOption: true, description: 'The path to the file to display' }
13
+ { name: 'path', type: String, typeLabel: '{underline path}', defaultOption: true, description: 'The path to the file to display (if omitted, reads from stdin)' }
14
14
  ],
15
15
  run: async (argv, process) => {
16
- const filePath = argv.path;
17
- if (!filePath) {
18
- await writelnStderr(process, terminal, 'Usage: hex <file>');
16
+ if (!process)
19
17
  return 1;
20
- }
21
- const fullPath = path.resolve(shell.cwd, filePath);
18
+ const filePath = argv.path;
19
+ let data;
22
20
  try {
23
- const exists = await shell.context.fs.promises.exists(fullPath);
24
- if (!exists) {
25
- await writelnStderr(process, terminal, `hex: ${filePath}: No such file or directory`);
26
- return 1;
21
+ if (!filePath) {
22
+ if (!process.stdin) {
23
+ await writelnStderr(process, terminal, 'Usage: hex <file>');
24
+ await writelnStderr(process, terminal, ' or: <command> | hex');
25
+ return 1;
26
+ }
27
+ if (process.stdinIsTTY) {
28
+ await writelnStderr(process, terminal, 'Usage: hex <file>');
29
+ await writelnStderr(process, terminal, ' or: <command> | hex');
30
+ return 1;
31
+ }
32
+ const reader = process.stdin.getReader();
33
+ const chunks = [];
34
+ try {
35
+ const first = await reader.read();
36
+ if (first.done && !first.value) {
37
+ await writelnStderr(process, terminal, 'Usage: hex <file>');
38
+ await writelnStderr(process, terminal, ' or: <command> | hex');
39
+ return 1;
40
+ }
41
+ if (first.value) {
42
+ chunks.push(first.value);
43
+ }
44
+ if (!first.done) {
45
+ while (true) {
46
+ const { done, value } = await reader.read();
47
+ if (done)
48
+ break;
49
+ if (value) {
50
+ chunks.push(value);
51
+ }
52
+ }
53
+ }
54
+ }
55
+ finally {
56
+ reader.releaseLock();
57
+ }
58
+ const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
59
+ if (totalLength === 0) {
60
+ await writelnStderr(process, terminal, 'Usage: hex <file>');
61
+ await writelnStderr(process, terminal, ' or: <command> | hex');
62
+ return 1;
63
+ }
64
+ data = new Uint8Array(totalLength);
65
+ let offset = 0;
66
+ for (const chunk of chunks) {
67
+ data.set(chunk, offset);
68
+ offset += chunk.length;
69
+ }
27
70
  }
28
- const stats = await shell.context.fs.promises.stat(fullPath);
29
- if (stats.isDirectory()) {
30
- await writelnStderr(process, terminal, `hex: ${filePath}: Is a directory`);
31
- return 1;
71
+ else {
72
+ const fullPath = path.resolve(shell.cwd, filePath);
73
+ const exists = await shell.context.fs.promises.exists(fullPath);
74
+ if (!exists) {
75
+ await writelnStderr(process, terminal, `hex: ${filePath}: No such file or directory`);
76
+ return 1;
77
+ }
78
+ const stats = await shell.context.fs.promises.stat(fullPath);
79
+ if (stats.isDirectory()) {
80
+ await writelnStderr(process, terminal, `hex: ${filePath}: Is a directory`);
81
+ return 1;
82
+ }
83
+ data = await shell.context.fs.promises.readFile(fullPath);
32
84
  }
33
- const data = await shell.context.fs.promises.readFile(fullPath);
34
85
  const bytesPerLine = 16;
35
86
  for (let offset = 0; offset < data.length; offset += bytesPerLine) {
36
87
  const lineBytes = data.slice(offset, offset + bytesPerLine);
@@ -73,7 +124,8 @@ export function createCommand(kernel, shell, terminal) {
73
124
  return 0;
74
125
  }
75
126
  catch (error) {
76
- await writelnStderr(process, terminal, `hex: ${filePath}: ${error instanceof Error ? error.message : 'Unknown error'}`);
127
+ const errorPath = filePath || 'stdin';
128
+ await writelnStderr(process, terminal, `hex: ${errorPath}: ${error instanceof Error ? error.message : 'Unknown error'}`);
77
129
  return 1;
78
130
  }
79
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../src/commands/hex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../src/commands/hex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ls.d.ts","sourceRoot":"","sources":["../../src/commands/ls.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAW,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAG/D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CA6N/F"}
1
+ {"version":3,"file":"ls.d.ts","sourceRoot":"","sources":["../../src/commands/ls.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAW,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAG/D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CA+N/F"}
@@ -192,9 +192,11 @@ export function createCommand(kernel, shell, terminal) {
192
192
  return linkInfo;
193
193
  if (descriptions.has(path.resolve(fullPath, file.name)))
194
194
  return descriptions.get(path.resolve(fullPath, file.name));
195
- const ext = file.name.split('.').pop();
196
- if (ext && descriptions.has('.' + ext))
197
- return descriptions.get('.' + ext);
195
+ if (file.name.includes('.')) {
196
+ const ext = file.name.split('.').pop();
197
+ if (ext && descriptions.has('.' + ext))
198
+ return descriptions.get('.' + ext);
199
+ }
198
200
  if (!file.stats)
199
201
  return '';
200
202
  if (file.stats.isBlockDevice() || file.stats.isCharacterDevice()) {
@@ -1 +1 @@
1
- {"version":3,"file":"ls.js","sourceRoot":"","sources":["../../src/commands/ls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ls.js","sourceRoot":"","sources":["../../src/commands/ls.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=tail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tail.d.ts","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAW,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAErE,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,CA6J/F"}
@@ -0,0 +1,152 @@
1
+ import path from 'path';
2
+ import { TerminalEvents } from '@ecmaos/types';
3
+ import { TerminalCommand } from '../shared/terminal-command.js';
4
+ export function createCommand(kernel, shell, terminal) {
5
+ return new TerminalCommand({
6
+ command: 'tail',
7
+ description: 'Print the last lines of files',
8
+ kernel,
9
+ shell,
10
+ terminal,
11
+ options: [
12
+ { name: 'help', type: Boolean, description: kernel.i18n.t('Display help') },
13
+ { name: 'lines', type: Number, alias: 'n', description: 'Print the last NUM lines instead of the last 10' },
14
+ { name: 'path', type: String, typeLabel: '{underline path}', defaultOption: true, multiple: true, description: 'The path(s) to the file(s) to read' }
15
+ ],
16
+ run: async (argv, process) => {
17
+ if (!process)
18
+ return 1;
19
+ const writer = process.stdout.getWriter();
20
+ const numLines = argv.lines ?? 10;
21
+ try {
22
+ if (!argv.path || !argv.path[0]) {
23
+ if (!process.stdin) {
24
+ return 0;
25
+ }
26
+ const reader = process.stdin.getReader();
27
+ const decoder = new TextDecoder();
28
+ const lines = [];
29
+ let buffer = '';
30
+ try {
31
+ while (true) {
32
+ let readResult;
33
+ try {
34
+ readResult = await reader.read();
35
+ }
36
+ catch (error) {
37
+ if (error instanceof Error) {
38
+ throw error;
39
+ }
40
+ break;
41
+ }
42
+ const { done, value } = readResult;
43
+ if (done) {
44
+ buffer += decoder.decode();
45
+ break;
46
+ }
47
+ if (value) {
48
+ buffer += decoder.decode(value, { stream: true });
49
+ const newLines = buffer.split('\n');
50
+ buffer = newLines.pop() || '';
51
+ lines.push(...newLines);
52
+ }
53
+ }
54
+ if (buffer) {
55
+ lines.push(buffer);
56
+ }
57
+ }
58
+ finally {
59
+ try {
60
+ reader.releaseLock();
61
+ }
62
+ catch {
63
+ }
64
+ }
65
+ const output = lines.slice(-numLines).join('\n');
66
+ if (output) {
67
+ await writer.write(new TextEncoder().encode(output + '\n'));
68
+ }
69
+ return 0;
70
+ }
71
+ const files = argv.path || [];
72
+ const isMultipleFiles = files.length > 1;
73
+ for (let i = 0; i < files.length; i++) {
74
+ const file = files[i];
75
+ if (!file)
76
+ continue;
77
+ const fullPath = path.resolve(shell.cwd, file);
78
+ if (isMultipleFiles) {
79
+ const header = i > 0 ? '\n' : '';
80
+ await writer.write(new TextEncoder().encode(`${header}==> ${file} <==\n`));
81
+ }
82
+ let interrupted = false;
83
+ const interruptHandler = () => { interrupted = true; };
84
+ kernel.terminal.events.on(TerminalEvents.INTERRUPT, interruptHandler);
85
+ try {
86
+ if (!fullPath.startsWith('/dev')) {
87
+ const handle = await shell.context.fs.promises.open(fullPath, 'r');
88
+ const stat = await shell.context.fs.promises.stat(fullPath);
89
+ const decoder = new TextDecoder();
90
+ let buffer = '';
91
+ let bytesRead = 0;
92
+ const chunkSize = 1024;
93
+ while (bytesRead < stat.size) {
94
+ if (interrupted)
95
+ break;
96
+ const data = new Uint8Array(chunkSize);
97
+ const readSize = Math.min(chunkSize, stat.size - bytesRead);
98
+ await handle.read(data, 0, readSize, bytesRead);
99
+ const chunk = data.subarray(0, readSize);
100
+ buffer += decoder.decode(chunk, { stream: true });
101
+ bytesRead += readSize;
102
+ }
103
+ const lines = buffer.split('\n');
104
+ if (lines[lines.length - 1] === '') {
105
+ lines.pop();
106
+ }
107
+ const output = lines.slice(-numLines).join('\n');
108
+ if (output) {
109
+ await writer.write(new TextEncoder().encode(output + '\n'));
110
+ }
111
+ }
112
+ else {
113
+ const device = await shell.context.fs.promises.open(fullPath);
114
+ const decoder = new TextDecoder();
115
+ const lines = [];
116
+ let buffer = '';
117
+ const chunkSize = 1024;
118
+ const data = new Uint8Array(chunkSize);
119
+ let bytesRead = 0;
120
+ do {
121
+ if (interrupted)
122
+ break;
123
+ const result = await device.read(data);
124
+ bytesRead = result.bytesRead;
125
+ if (bytesRead > 0) {
126
+ buffer += decoder.decode(data.subarray(0, bytesRead), { stream: true });
127
+ }
128
+ } while (bytesRead > 0);
129
+ const allLines = buffer.split('\n');
130
+ if (allLines[allLines.length - 1] === '') {
131
+ allLines.pop();
132
+ }
133
+ lines.push(...allLines);
134
+ const output = lines.slice(-numLines).join('\n');
135
+ if (output) {
136
+ await writer.write(new TextEncoder().encode(output + '\n'));
137
+ }
138
+ }
139
+ }
140
+ finally {
141
+ kernel.terminal.events.off(TerminalEvents.INTERRUPT, interruptHandler);
142
+ }
143
+ }
144
+ return 0;
145
+ }
146
+ finally {
147
+ writer.releaseLock();
148
+ }
149
+ }
150
+ });
151
+ }
152
+ //# sourceMappingURL=tail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tail.js","sourceRoot":"","sources":["../../src/commands/tail.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export { createCommand as createCd } from './commands/cd.js';
8
8
  export { createCommand as createChmod } from './commands/chmod.js';
9
9
  export { createCommand as createCp } from './commands/cp.js';
10
10
  export { createCommand as createEcho } from './commands/echo.js';
11
+ export { createCommand as createGrep } from './commands/grep.js';
11
12
  export { createCommand as createLn } from './commands/ln.js';
12
13
  export { createCommand as createLs } from './commands/ls.js';
13
14
  export { createCommand as createMkdir } from './commands/mkdir.js';
@@ -21,6 +22,7 @@ export { createCommand as createHex } from './commands/hex.js';
21
22
  export { createCommand as createLess } from './commands/less.js';
22
23
  export { createCommand as createSed } from './commands/sed.js';
23
24
  export { createCommand as createTee } from './commands/tee.js';
25
+ export { createCommand as createTail } from './commands/tail.js';
24
26
  /**
25
27
  * Creates all coreutils commands.
26
28
  * This function replaces the TerminalCommands function from the kernel.
@@ -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;AAwB5F,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,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,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAE9D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,CAsBtH;AAGD,OAAO,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,CAAA"}
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;AA2B5F,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,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,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;AAEhE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,CAyBtH;AAGD,OAAO,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,CAAA"}
package/dist/index.js CHANGED
@@ -7,6 +7,8 @@ import { createCommand as createCd } from './commands/cd.js';
7
7
  import { createCommand as createChmod } from './commands/chmod.js';
8
8
  import { createCommand as createCp } from './commands/cp.js';
9
9
  import { createCommand as createEcho } from './commands/echo.js';
10
+ import { createCommand as createGrep } from './commands/grep.js';
11
+ import { createCommand as createHead } from './commands/head.js';
10
12
  import { createCommand as createLn } from './commands/ln.js';
11
13
  import { createCommand as createLs } from './commands/ls.js';
12
14
  import { createCommand as createMkdir } from './commands/mkdir.js';
@@ -21,12 +23,14 @@ import { createCommand as createLess } from './commands/less.js';
21
23
  import { createCommand as createPasskey } from './commands/passkey.js';
22
24
  import { createCommand as createSed } from './commands/sed.js';
23
25
  import { createCommand as createTee } from './commands/tee.js';
26
+ import { createCommand as createTail } from './commands/tail.js';
24
27
  // Export individual command factories
25
28
  export { createCommand as createCat } from './commands/cat.js';
26
29
  export { createCommand as createCd } from './commands/cd.js';
27
30
  export { createCommand as createChmod } from './commands/chmod.js';
28
31
  export { createCommand as createCp } from './commands/cp.js';
29
32
  export { createCommand as createEcho } from './commands/echo.js';
33
+ export { createCommand as createGrep } from './commands/grep.js';
30
34
  export { createCommand as createLn } from './commands/ln.js';
31
35
  export { createCommand as createLs } from './commands/ls.js';
32
36
  export { createCommand as createMkdir } from './commands/mkdir.js';
@@ -40,6 +44,7 @@ export { createCommand as createHex } from './commands/hex.js';
40
44
  export { createCommand as createLess } from './commands/less.js';
41
45
  export { createCommand as createSed } from './commands/sed.js';
42
46
  export { createCommand as createTee } from './commands/tee.js';
47
+ export { createCommand as createTail } from './commands/tail.js';
43
48
  /**
44
49
  * Creates all coreutils commands.
45
50
  * This function replaces the TerminalCommands function from the kernel.
@@ -51,6 +56,8 @@ export function createAllCommands(kernel, shell, terminal) {
51
56
  chmod: createChmod(kernel, shell, terminal),
52
57
  cp: createCp(kernel, shell, terminal),
53
58
  echo: createEcho(kernel, shell, terminal),
59
+ grep: createGrep(kernel, shell, terminal),
60
+ head: createHead(kernel, shell, terminal),
54
61
  ln: createLn(kernel, shell, terminal),
55
62
  ls: createLs(kernel, shell, terminal),
56
63
  mkdir: createMkdir(kernel, shell, terminal),
@@ -64,6 +71,7 @@ export function createAllCommands(kernel, shell, terminal) {
64
71
  less: createLess(kernel, shell, terminal),
65
72
  passkey: createPasskey(kernel, shell, terminal),
66
73
  sed: createSed(kernel, shell, terminal),
74
+ tail: createTail(kernel, shell, terminal),
67
75
  tee: createTee(kernel, shell, terminal)
68
76
  };
69
77
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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",
4
+ "version": "0.1.5",
5
5
  "license": "MIT+Apache-2.0",
6
6
  "homepage": "https://ecmaos.sh",
7
7
  "repository": "https://github.com/ecmaos/ecmaos",
@@ -29,7 +29,7 @@
29
29
  "command-line-args": "^6.0.0",
30
30
  "command-line-usage": "^7.0.3",
31
31
  "human-format": "^1.2.1",
32
- "@ecmaos/types": "^0.4.3"
32
+ "@ecmaos/types": "^0.4.4"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/ansi-escape-sequences": "^4.0.4",
@@ -3,7 +3,6 @@ import type { CommandLineOptions } from 'command-line-args'
3
3
  import type { Kernel, Process, Shell, Terminal } from '@ecmaos/types'
4
4
  import { TerminalEvents } from '@ecmaos/types'
5
5
  import { TerminalCommand } from '../shared/terminal-command.js'
6
- import { writeStdout } from '../shared/helpers.js'
7
6
 
8
7
  export function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal): TerminalCommand {
9
8
  return new TerminalCommand({
@@ -22,6 +21,8 @@ export function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal):
22
21
 
23
22
  // Get a single writer for the entire operation
24
23
  const writer = process.stdout.getWriter()
24
+ const isTTY = process.stdoutIsTTY ?? false
25
+ let lastByte: number | undefined
25
26
 
26
27
  try {
27
28
  // If no files specified, read from stdin
@@ -32,12 +33,20 @@ export function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal):
32
33
  while (true) {
33
34
  const { done, value } = await reader.read()
34
35
  if (done) break
36
+ if (value.length > 0) {
37
+ lastByte = value[value.length - 1]
38
+ }
35
39
  await writer.write(value)
36
40
  }
37
41
  } finally {
38
42
  reader.releaseLock()
39
43
  }
40
44
 
45
+ // Add newline at end if outputting to terminal and last byte wasn't newline
46
+ if (isTTY && lastByte !== undefined && lastByte !== 0x0A) {
47
+ await writer.write(new Uint8Array([0x0A]))
48
+ }
49
+
41
50
  return 0
42
51
  }
43
52
 
@@ -64,7 +73,11 @@ export function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal):
64
73
  const data = new Uint8Array(chunkSize)
65
74
  const readSize = Math.min(chunkSize, stat.size - bytesRead)
66
75
  await handle.read(data, 0, readSize, bytesRead)
67
- await writer.write(data.subarray(0, readSize))
76
+ const chunk = data.subarray(0, readSize)
77
+ if (chunk.length > 0) {
78
+ lastByte = chunk[chunk.length - 1]
79
+ }
80
+ await writer.write(chunk)
68
81
  bytesRead += readSize
69
82
  }
70
83
  } else {
@@ -82,7 +95,11 @@ export function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal):
82
95
  if (bytesRead > 0) {
83
96
  const bytesToWrite = maxBytes ? Math.min(bytesRead, maxBytes - totalBytesRead) : bytesRead
84
97
  if (bytesToWrite > 0) {
85
- await writer.write(data.subarray(0, bytesToWrite))
98
+ const chunk = data.subarray(0, bytesToWrite)
99
+ if (chunk.length > 0) {
100
+ lastByte = chunk[chunk.length - 1]
101
+ }
102
+ await writer.write(chunk)
86
103
  totalBytesRead += bytesToWrite
87
104
  }
88
105
  }
@@ -93,10 +110,14 @@ export function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal):
93
110
  }
94
111
  }
95
112
 
113
+ // Add newline at end if outputting to terminal and last byte wasn't newline
114
+ if (isTTY && lastByte !== undefined && lastByte !== 0x0A) {
115
+ await writer.write(new Uint8Array([0x0A]))
116
+ }
117
+
96
118
  return 0
97
119
  } finally {
98
120
  writer.releaseLock()
99
- await writeStdout(process, terminal, '\n')
100
121
  }
101
122
  }
102
123
  })
@@ -11,11 +11,14 @@ export function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal):
11
11
  terminal,
12
12
  options: [
13
13
  { name: 'help', type: Boolean, description: kernel.i18n.t('Display help') },
14
+ { name: 'n', type: Boolean, alias: 'n', description: 'Do not output the trailing newline' },
14
15
  { name: 'text', type: String, typeLabel: '{underline text}', defaultOption: true, multiple: true, description: 'The text to print' }
15
16
  ],
16
17
  run: async (argv: CommandLineOptions, process?: Process) => {
18
+ const noNewline = (argv.n as boolean) || false
17
19
  const text = ((argv.text as string[]) || []).join(' ')
18
- const data = new TextEncoder().encode(text + '\n')
20
+ const output = noNewline ? text : text + '\n'
21
+ const data = new TextEncoder().encode(output)
19
22
 
20
23
  if (process) {
21
24
  const writer = process.stdout.getWriter()
@@ -25,7 +28,7 @@ export function createCommand(kernel: Kernel, shell: Shell, terminal: Terminal):
25
28
  writer.releaseLock()
26
29
  }
27
30
  } else {
28
- terminal.write(text + '\n')
31
+ terminal.write(output)
29
32
  }
30
33
 
31
34
  return 0