@ecmaos/coreutils 0.5.0 → 0.5.2
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 +22 -0
- package/dist/commands/dd.d.ts +4 -0
- package/dist/commands/dd.d.ts.map +1 -0
- package/dist/commands/dd.js +525 -0
- package/dist/commands/dd.js.map +1 -0
- package/dist/commands/ls.d.ts.map +1 -1
- package/dist/commands/ls.js +51 -15
- package/dist/commands/ls.js.map +1 -1
- package/dist/commands/lsx.d.ts +4 -0
- package/dist/commands/lsx.d.ts.map +1 -0
- package/dist/commands/lsx.js +308 -0
- package/dist/commands/lsx.js.map +1 -0
- package/dist/commands/mkdir.d.ts.map +1 -1
- package/dist/commands/mkdir.js +155 -10
- package/dist/commands/mkdir.js.map +1 -1
- package/dist/commands/sed.d.ts.map +1 -1
- package/dist/commands/sed.js +63 -63
- package/dist/commands/sed.js.map +1 -1
- package/dist/commands/view.d.ts.map +1 -1
- package/dist/commands/view.js +0 -2
- package/dist/commands/view.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/commands/dd.ts +547 -0
- package/src/commands/ls.ts +58 -16
- package/src/commands/mkdir.ts +150 -10
- package/src/commands/sed.ts +69 -70
- package/src/commands/view.ts +0 -3
- package/src/index.ts +3 -1
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @ecmaos/coreutils
|
|
2
2
|
|
|
3
|
+
## 0.5.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 472a7f1: feat: i18n filesystem loading, browser detection, and Spanish translations
|
|
8
|
+
|
|
9
|
+
- Load locales from filesystem at /usr/share/locales
|
|
10
|
+
- Auto-detect browser language and configure locale
|
|
11
|
+
- Add Spanish translations for all namespaces
|
|
12
|
+
- Add dd coreutil command
|
|
13
|
+
- Fix shell command not found errors
|
|
14
|
+
- Update dependencies (turbo 2.7.5)
|
|
15
|
+
|
|
16
|
+
- Updated dependencies [472a7f1]
|
|
17
|
+
- @ecmaos/types@0.7.3
|
|
18
|
+
|
|
19
|
+
## 0.5.1
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- 9a406cf: support coreutil descriptions
|
|
24
|
+
|
|
3
25
|
## 0.5.0
|
|
4
26
|
|
|
5
27
|
### Minor Changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dd.d.ts","sourceRoot":"","sources":["../../src/commands/dd.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;AAoG/D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CA4b/F"}
|
|
@@ -0,0 +1,525 @@
|
|
|
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: dd [OPERAND]...
|
|
6
|
+
Copy a file, converting and formatting according to the operands.
|
|
7
|
+
|
|
8
|
+
Operands:
|
|
9
|
+
|
|
10
|
+
if=FILE read from FILE instead of stdin
|
|
11
|
+
of=FILE write to FILE instead of stdout
|
|
12
|
+
bs=BYTES read and write up to BYTES bytes at a time
|
|
13
|
+
ibs=BYTES read up to BYTES bytes at a time (default: 512)
|
|
14
|
+
obs=BYTES write BYTES bytes at a time (default: 512)
|
|
15
|
+
count=N copy only N input blocks
|
|
16
|
+
skip=N skip N input blocks before copying
|
|
17
|
+
seek=N skip N output blocks before copying
|
|
18
|
+
conv=CONVS convert the file as per the comma separated symbol list:
|
|
19
|
+
ucase convert to uppercase
|
|
20
|
+
lcase convert to lowercase
|
|
21
|
+
swab swap every pair of input bytes
|
|
22
|
+
noerror continue after read errors
|
|
23
|
+
notrunc do not truncate the output file
|
|
24
|
+
sync pad every input block to ibs
|
|
25
|
+
|
|
26
|
+
status=LEVEL
|
|
27
|
+
The LEVEL of information to print to stderr:
|
|
28
|
+
'none' suppress all output
|
|
29
|
+
'noxfer' suppress final transfer statistics
|
|
30
|
+
'progress' show periodic transfer statistics
|
|
31
|
+
|
|
32
|
+
--help display this help and exit`;
|
|
33
|
+
writelnStderr(process, terminal, usage);
|
|
34
|
+
}
|
|
35
|
+
function parseBytes(value) {
|
|
36
|
+
const match = value.match(/^([0-9]+)([kmgKMG]?)$/);
|
|
37
|
+
if (!match?.[1])
|
|
38
|
+
return NaN;
|
|
39
|
+
const num = parseInt(match[1], 10);
|
|
40
|
+
if (isNaN(num))
|
|
41
|
+
return NaN;
|
|
42
|
+
const suffix = (match[2] || '').toLowerCase();
|
|
43
|
+
switch (suffix) {
|
|
44
|
+
case 'k':
|
|
45
|
+
return num * 1024;
|
|
46
|
+
case 'm':
|
|
47
|
+
return num * 1024 * 1024;
|
|
48
|
+
case 'g':
|
|
49
|
+
return num * 1024 * 1024 * 1024;
|
|
50
|
+
default:
|
|
51
|
+
return num;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function parseBlocks(value) {
|
|
55
|
+
const num = parseInt(value, 10);
|
|
56
|
+
return isNaN(num) ? NaN : num;
|
|
57
|
+
}
|
|
58
|
+
function applyConversions(data, conversions) {
|
|
59
|
+
let result = new Uint8Array(data);
|
|
60
|
+
for (const conv of conversions) {
|
|
61
|
+
switch (conv) {
|
|
62
|
+
case 'ucase': {
|
|
63
|
+
const text = new TextDecoder().decode(result);
|
|
64
|
+
result = new TextEncoder().encode(text.toUpperCase());
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
case 'lcase': {
|
|
68
|
+
const text = new TextDecoder().decode(result);
|
|
69
|
+
result = new TextEncoder().encode(text.toLowerCase());
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
case 'swab': {
|
|
73
|
+
const swapped = new Uint8Array(result.length);
|
|
74
|
+
for (let i = 0; i < result.length - 1; i += 2) {
|
|
75
|
+
const a = result[i];
|
|
76
|
+
const b = result[i + 1];
|
|
77
|
+
if (a !== undefined && b !== undefined) {
|
|
78
|
+
swapped[i] = b;
|
|
79
|
+
swapped[i + 1] = a;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (result.length % 2 === 1) {
|
|
83
|
+
const last = result[result.length - 1];
|
|
84
|
+
if (last !== undefined) {
|
|
85
|
+
swapped[result.length - 1] = last;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
result = swapped;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
export function createCommand(kernel, shell, terminal) {
|
|
96
|
+
return new TerminalCommand({
|
|
97
|
+
command: 'dd',
|
|
98
|
+
description: 'Copy and convert files with block-level operations',
|
|
99
|
+
kernel,
|
|
100
|
+
shell,
|
|
101
|
+
terminal,
|
|
102
|
+
run: async (pid, argv) => {
|
|
103
|
+
const process = kernel.processes.get(pid);
|
|
104
|
+
if (!process)
|
|
105
|
+
return 1;
|
|
106
|
+
if (argv.length > 0 && (argv[0] === '--help' || argv[0] === '-h')) {
|
|
107
|
+
printUsage(process, terminal);
|
|
108
|
+
return 0;
|
|
109
|
+
}
|
|
110
|
+
let inputFile;
|
|
111
|
+
let outputFile;
|
|
112
|
+
let blockSize;
|
|
113
|
+
let inputBlockSize = 512;
|
|
114
|
+
let outputBlockSize = 512;
|
|
115
|
+
let count;
|
|
116
|
+
let skip = 0;
|
|
117
|
+
let seek = 0;
|
|
118
|
+
const conversions = [];
|
|
119
|
+
let status = 'noxfer';
|
|
120
|
+
let noError = false;
|
|
121
|
+
let noTrunc = false;
|
|
122
|
+
let sync = false;
|
|
123
|
+
for (const arg of argv) {
|
|
124
|
+
if (!arg)
|
|
125
|
+
continue;
|
|
126
|
+
if (arg === '--help' || arg === '-h') {
|
|
127
|
+
printUsage(process, terminal);
|
|
128
|
+
return 0;
|
|
129
|
+
}
|
|
130
|
+
else if (arg.startsWith('if=')) {
|
|
131
|
+
inputFile = arg.slice(3);
|
|
132
|
+
}
|
|
133
|
+
else if (arg.startsWith('of=')) {
|
|
134
|
+
outputFile = arg.slice(3);
|
|
135
|
+
}
|
|
136
|
+
else if (arg.startsWith('bs=')) {
|
|
137
|
+
const bytes = parseBytes(arg.slice(3));
|
|
138
|
+
if (isNaN(bytes)) {
|
|
139
|
+
await writelnStderr(process, terminal, `dd: invalid block size: ${arg.slice(3)}`);
|
|
140
|
+
return 1;
|
|
141
|
+
}
|
|
142
|
+
blockSize = bytes;
|
|
143
|
+
inputBlockSize = bytes;
|
|
144
|
+
outputBlockSize = bytes;
|
|
145
|
+
}
|
|
146
|
+
else if (arg.startsWith('ibs=')) {
|
|
147
|
+
const bytes = parseBytes(arg.slice(4));
|
|
148
|
+
if (isNaN(bytes)) {
|
|
149
|
+
await writelnStderr(process, terminal, `dd: invalid input block size: ${arg.slice(4)}`);
|
|
150
|
+
return 1;
|
|
151
|
+
}
|
|
152
|
+
inputBlockSize = bytes;
|
|
153
|
+
}
|
|
154
|
+
else if (arg.startsWith('obs=')) {
|
|
155
|
+
const bytes = parseBytes(arg.slice(4));
|
|
156
|
+
if (isNaN(bytes)) {
|
|
157
|
+
await writelnStderr(process, terminal, `dd: invalid output block size: ${arg.slice(4)}`);
|
|
158
|
+
return 1;
|
|
159
|
+
}
|
|
160
|
+
outputBlockSize = bytes;
|
|
161
|
+
}
|
|
162
|
+
else if (arg.startsWith('count=')) {
|
|
163
|
+
const blocks = parseBlocks(arg.slice(6));
|
|
164
|
+
if (isNaN(blocks)) {
|
|
165
|
+
await writelnStderr(process, terminal, `dd: invalid count: ${arg.slice(6)}`);
|
|
166
|
+
return 1;
|
|
167
|
+
}
|
|
168
|
+
count = blocks;
|
|
169
|
+
}
|
|
170
|
+
else if (arg.startsWith('skip=')) {
|
|
171
|
+
const blocks = parseBlocks(arg.slice(5));
|
|
172
|
+
if (isNaN(blocks)) {
|
|
173
|
+
await writelnStderr(process, terminal, `dd: invalid skip: ${arg.slice(5)}`);
|
|
174
|
+
return 1;
|
|
175
|
+
}
|
|
176
|
+
skip = blocks;
|
|
177
|
+
}
|
|
178
|
+
else if (arg.startsWith('seek=')) {
|
|
179
|
+
const blocks = parseBlocks(arg.slice(5));
|
|
180
|
+
if (isNaN(blocks)) {
|
|
181
|
+
await writelnStderr(process, terminal, `dd: invalid seek: ${arg.slice(5)}`);
|
|
182
|
+
return 1;
|
|
183
|
+
}
|
|
184
|
+
seek = blocks;
|
|
185
|
+
}
|
|
186
|
+
else if (arg.startsWith('conv=')) {
|
|
187
|
+
const convs = arg.slice(5).split(',').map(c => c.trim());
|
|
188
|
+
for (const conv of convs) {
|
|
189
|
+
if (['ucase', 'lcase', 'swab', 'noerror', 'notrunc', 'sync'].includes(conv)) {
|
|
190
|
+
if (conv === 'noerror')
|
|
191
|
+
noError = true;
|
|
192
|
+
else if (conv === 'notrunc')
|
|
193
|
+
noTrunc = true;
|
|
194
|
+
else if (conv === 'sync')
|
|
195
|
+
sync = true;
|
|
196
|
+
else
|
|
197
|
+
conversions.push(conv);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
await writelnStderr(process, terminal, `dd: invalid conversion: ${conv}`);
|
|
201
|
+
return 1;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
else if (arg.startsWith('status=')) {
|
|
206
|
+
const level = arg.slice(7);
|
|
207
|
+
if (['none', 'noxfer', 'progress'].includes(level)) {
|
|
208
|
+
status = level;
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
await writelnStderr(process, terminal, `dd: invalid status level: ${level}`);
|
|
212
|
+
return 1;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
await writelnStderr(process, terminal, `dd: invalid operand: ${arg}`);
|
|
217
|
+
await writelnStderr(process, terminal, "Try 'dd --help' for more information.");
|
|
218
|
+
return 1;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (blockSize !== undefined) {
|
|
222
|
+
inputBlockSize = blockSize;
|
|
223
|
+
outputBlockSize = blockSize;
|
|
224
|
+
}
|
|
225
|
+
let inputFileHandle;
|
|
226
|
+
let inputReader;
|
|
227
|
+
let outputFileHandle;
|
|
228
|
+
let outputWriter;
|
|
229
|
+
try {
|
|
230
|
+
if (inputFile) {
|
|
231
|
+
const inputPath = path.resolve(shell.cwd, inputFile);
|
|
232
|
+
const isDevice = inputPath.startsWith('/dev');
|
|
233
|
+
inputFileHandle = await shell.context.fs.promises.open(inputPath, isDevice ? undefined : 'r');
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
if (!process.stdin) {
|
|
237
|
+
await writelnStderr(process, terminal, 'dd: stdin not available');
|
|
238
|
+
return 1;
|
|
239
|
+
}
|
|
240
|
+
inputReader = process.stdin.getReader();
|
|
241
|
+
}
|
|
242
|
+
if (outputFile) {
|
|
243
|
+
const outputPath = path.resolve(shell.cwd, outputFile);
|
|
244
|
+
const flags = noTrunc ? 'r+' : 'w';
|
|
245
|
+
outputFileHandle = await shell.context.fs.promises.open(outputPath, flags).catch(async () => {
|
|
246
|
+
if (noTrunc) {
|
|
247
|
+
return await shell.context.fs.promises.open(outputPath, 'w');
|
|
248
|
+
}
|
|
249
|
+
throw new Error(`Cannot open ${outputFile}`);
|
|
250
|
+
});
|
|
251
|
+
let outputPosition = 0;
|
|
252
|
+
if (seek > 0) {
|
|
253
|
+
outputPosition = seek * outputBlockSize;
|
|
254
|
+
const zeros = new Uint8Array(outputPosition);
|
|
255
|
+
await outputFileHandle.write(zeros);
|
|
256
|
+
}
|
|
257
|
+
outputWriter = {
|
|
258
|
+
write: async (chunk) => {
|
|
259
|
+
await outputFileHandle.write(chunk);
|
|
260
|
+
},
|
|
261
|
+
releaseLock: async () => {
|
|
262
|
+
await outputFileHandle.close();
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
if (!process.stdout) {
|
|
268
|
+
await writelnStderr(process, terminal, 'dd: stdout not available');
|
|
269
|
+
return 1;
|
|
270
|
+
}
|
|
271
|
+
outputWriter = process.stdout.getWriter();
|
|
272
|
+
if (seek > 0 && outputWriter) {
|
|
273
|
+
const seekBytes = seek * outputBlockSize;
|
|
274
|
+
const zeros = new Uint8Array(seekBytes);
|
|
275
|
+
await outputWriter.write(zeros);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
if (!outputWriter) {
|
|
279
|
+
await writelnStderr(process, terminal, 'dd: no output writer available');
|
|
280
|
+
return 1;
|
|
281
|
+
}
|
|
282
|
+
let totalBytesRead = 0;
|
|
283
|
+
let totalBytesWritten = 0;
|
|
284
|
+
let blocksRead = 0;
|
|
285
|
+
let blocksWritten = 0;
|
|
286
|
+
if (inputFileHandle && inputFile) {
|
|
287
|
+
const inputPath = path.resolve(shell.cwd, inputFile);
|
|
288
|
+
const isDevice = inputPath.startsWith('/dev');
|
|
289
|
+
if (isDevice) {
|
|
290
|
+
const buffer = new Uint8Array(inputBlockSize);
|
|
291
|
+
let skipBytes = skip * inputBlockSize;
|
|
292
|
+
let skipped = 0;
|
|
293
|
+
while (true) {
|
|
294
|
+
if (count !== undefined && blocksRead >= count) {
|
|
295
|
+
break;
|
|
296
|
+
}
|
|
297
|
+
const result = await inputFileHandle.read(buffer);
|
|
298
|
+
const bytesRead = result.bytesRead;
|
|
299
|
+
if (bytesRead === 0) {
|
|
300
|
+
if (sync && blocksRead > 0) {
|
|
301
|
+
const padded = new Uint8Array(inputBlockSize);
|
|
302
|
+
let data = padded;
|
|
303
|
+
if (conversions.length > 0) {
|
|
304
|
+
data = applyConversions(data, conversions);
|
|
305
|
+
}
|
|
306
|
+
await outputWriter.write(data);
|
|
307
|
+
totalBytesWritten += data.length;
|
|
308
|
+
blocksWritten++;
|
|
309
|
+
}
|
|
310
|
+
break;
|
|
311
|
+
}
|
|
312
|
+
let data = buffer.subarray(0, bytesRead);
|
|
313
|
+
if (skipBytes > 0) {
|
|
314
|
+
const toSkip = Math.min(data.length, skipBytes - skipped);
|
|
315
|
+
skipped += toSkip;
|
|
316
|
+
if (toSkip < data.length) {
|
|
317
|
+
data = data.subarray(toSkip);
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
continue;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
totalBytesRead += data.length;
|
|
324
|
+
blocksRead++;
|
|
325
|
+
if (data.length < inputBlockSize && sync) {
|
|
326
|
+
const padded = new Uint8Array(inputBlockSize);
|
|
327
|
+
padded.set(data);
|
|
328
|
+
data = padded;
|
|
329
|
+
}
|
|
330
|
+
if (conversions.length > 0) {
|
|
331
|
+
const converted = applyConversions(data, conversions);
|
|
332
|
+
data = new Uint8Array(converted);
|
|
333
|
+
}
|
|
334
|
+
if (data.length > outputBlockSize) {
|
|
335
|
+
let offset = 0;
|
|
336
|
+
while (offset < data.length) {
|
|
337
|
+
const chunk = data.slice(offset, offset + outputBlockSize);
|
|
338
|
+
await outputWriter.write(chunk);
|
|
339
|
+
totalBytesWritten += chunk.length;
|
|
340
|
+
blocksWritten++;
|
|
341
|
+
offset += outputBlockSize;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
await outputWriter.write(data);
|
|
346
|
+
totalBytesWritten += data.length;
|
|
347
|
+
blocksWritten++;
|
|
348
|
+
}
|
|
349
|
+
if (status === 'progress' && blocksRead % 100 === 0) {
|
|
350
|
+
await writelnStderr(process, terminal, `dd: ${blocksRead} blocks read, ${blocksWritten} blocks written`);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
const stat = await shell.context.fs.promises.stat(inputPath);
|
|
356
|
+
const fileSize = stat.size;
|
|
357
|
+
let inputPosition = 0;
|
|
358
|
+
if (skip > 0) {
|
|
359
|
+
inputPosition = skip * inputBlockSize;
|
|
360
|
+
if (inputPosition > fileSize) {
|
|
361
|
+
inputPosition = fileSize;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
const buffer = new Uint8Array(inputBlockSize);
|
|
365
|
+
while (true) {
|
|
366
|
+
if (count !== undefined && blocksRead >= count) {
|
|
367
|
+
break;
|
|
368
|
+
}
|
|
369
|
+
if (inputPosition >= fileSize) {
|
|
370
|
+
if (sync && blocksRead > 0) {
|
|
371
|
+
const padded = new Uint8Array(inputBlockSize);
|
|
372
|
+
let data = padded;
|
|
373
|
+
if (conversions.length > 0) {
|
|
374
|
+
data = applyConversions(data, conversions);
|
|
375
|
+
}
|
|
376
|
+
await outputWriter.write(data);
|
|
377
|
+
totalBytesWritten += data.length;
|
|
378
|
+
blocksWritten++;
|
|
379
|
+
}
|
|
380
|
+
break;
|
|
381
|
+
}
|
|
382
|
+
const bytesToRead = Math.min(inputBlockSize, fileSize - inputPosition);
|
|
383
|
+
await inputFileHandle.read(buffer, 0, bytesToRead, inputPosition);
|
|
384
|
+
let data = new Uint8Array(buffer.buffer, buffer.byteOffset, bytesToRead);
|
|
385
|
+
totalBytesRead += data.length;
|
|
386
|
+
blocksRead++;
|
|
387
|
+
inputPosition += bytesToRead;
|
|
388
|
+
if (data.length < inputBlockSize && sync) {
|
|
389
|
+
const padded = new Uint8Array(inputBlockSize);
|
|
390
|
+
padded.set(data);
|
|
391
|
+
data = padded;
|
|
392
|
+
}
|
|
393
|
+
if (conversions.length > 0) {
|
|
394
|
+
const converted = applyConversions(data, conversions);
|
|
395
|
+
data = new Uint8Array(converted);
|
|
396
|
+
}
|
|
397
|
+
if (data.length > outputBlockSize) {
|
|
398
|
+
let offset = 0;
|
|
399
|
+
while (offset < data.length) {
|
|
400
|
+
const chunk = data.slice(offset, offset + outputBlockSize);
|
|
401
|
+
await outputWriter.write(chunk);
|
|
402
|
+
totalBytesWritten += chunk.length;
|
|
403
|
+
blocksWritten++;
|
|
404
|
+
offset += outputBlockSize;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
await outputWriter.write(data);
|
|
409
|
+
totalBytesWritten += data.length;
|
|
410
|
+
blocksWritten++;
|
|
411
|
+
}
|
|
412
|
+
if (status === 'progress' && blocksRead % 100 === 0) {
|
|
413
|
+
await writelnStderr(process, terminal, `dd: ${blocksRead} blocks read, ${blocksWritten} blocks written`);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
else if (inputReader) {
|
|
419
|
+
if (skip > 0) {
|
|
420
|
+
const skipBytes = skip * inputBlockSize;
|
|
421
|
+
let skipped = 0;
|
|
422
|
+
while (skipped < skipBytes) {
|
|
423
|
+
const { done, value } = await inputReader.read();
|
|
424
|
+
if (done)
|
|
425
|
+
break;
|
|
426
|
+
if (value) {
|
|
427
|
+
skipped += value.length;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
let partialBlock;
|
|
432
|
+
while (true) {
|
|
433
|
+
if (count !== undefined && blocksRead >= count) {
|
|
434
|
+
break;
|
|
435
|
+
}
|
|
436
|
+
let data;
|
|
437
|
+
if (partialBlock) {
|
|
438
|
+
data = partialBlock;
|
|
439
|
+
partialBlock = undefined;
|
|
440
|
+
}
|
|
441
|
+
else {
|
|
442
|
+
const result = await inputReader.read();
|
|
443
|
+
if (result.done) {
|
|
444
|
+
if (sync && blocksRead > 0) {
|
|
445
|
+
const padded = new Uint8Array(inputBlockSize);
|
|
446
|
+
data = padded;
|
|
447
|
+
}
|
|
448
|
+
else {
|
|
449
|
+
break;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
else {
|
|
453
|
+
data = result.value;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
if (!data || data.length === 0) {
|
|
457
|
+
if (sync && blocksRead > 0) {
|
|
458
|
+
data = new Uint8Array(inputBlockSize);
|
|
459
|
+
}
|
|
460
|
+
else {
|
|
461
|
+
break;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
totalBytesRead += data.length;
|
|
465
|
+
blocksRead++;
|
|
466
|
+
if (data.length < inputBlockSize && sync) {
|
|
467
|
+
const padded = new Uint8Array(inputBlockSize);
|
|
468
|
+
padded.set(data);
|
|
469
|
+
data = padded;
|
|
470
|
+
}
|
|
471
|
+
if (conversions.length > 0) {
|
|
472
|
+
data = applyConversions(data, conversions);
|
|
473
|
+
}
|
|
474
|
+
if (!data) {
|
|
475
|
+
break;
|
|
476
|
+
}
|
|
477
|
+
if (data.length > outputBlockSize) {
|
|
478
|
+
let offset = 0;
|
|
479
|
+
while (offset < data.length) {
|
|
480
|
+
const chunk = data.slice(offset, offset + outputBlockSize);
|
|
481
|
+
await outputWriter.write(chunk);
|
|
482
|
+
totalBytesWritten += chunk.length;
|
|
483
|
+
blocksWritten++;
|
|
484
|
+
offset += outputBlockSize;
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
else {
|
|
488
|
+
await outputWriter.write(data);
|
|
489
|
+
totalBytesWritten += data.length;
|
|
490
|
+
blocksWritten++;
|
|
491
|
+
}
|
|
492
|
+
if (status === 'progress' && blocksRead % 100 === 0) {
|
|
493
|
+
await writelnStderr(process, terminal, `dd: ${blocksRead} blocks read, ${blocksWritten} blocks written`);
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
if (status !== 'none') {
|
|
498
|
+
await writelnStderr(process, terminal, `${blocksRead}+${Math.floor((totalBytesRead % inputBlockSize) / (inputBlockSize || 1))} records in`);
|
|
499
|
+
await writelnStderr(process, terminal, `${blocksWritten}+${Math.floor((totalBytesWritten % outputBlockSize) / (outputBlockSize || 1))} records out`);
|
|
500
|
+
await writelnStderr(process, terminal, `${totalBytesWritten} bytes copied`);
|
|
501
|
+
}
|
|
502
|
+
return 0;
|
|
503
|
+
}
|
|
504
|
+
catch (error) {
|
|
505
|
+
if (!noError) {
|
|
506
|
+
await writelnStderr(process, terminal, `dd: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
507
|
+
return 1;
|
|
508
|
+
}
|
|
509
|
+
return 0;
|
|
510
|
+
}
|
|
511
|
+
finally {
|
|
512
|
+
if (inputFileHandle) {
|
|
513
|
+
await inputFileHandle.close();
|
|
514
|
+
}
|
|
515
|
+
if (inputReader) {
|
|
516
|
+
inputReader.releaseLock();
|
|
517
|
+
}
|
|
518
|
+
if (outputWriter && 'releaseLock' in outputWriter) {
|
|
519
|
+
await outputWriter.releaseLock();
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
//# sourceMappingURL=dd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dd.js","sourceRoot":"","sources":["../../src/commands/dd.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;
|
|
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;AAsC/D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,CAwR/F"}
|