@fnndsc/chell 4.3.2 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builtins/debug.d.ts +3 -1
- package/dist/builtins/debug.js +14 -22
- package/dist/builtins/debug.js.map +1 -1
- package/dist/builtins/fs/cat.d.ts +8 -8
- package/dist/builtins/fs/cat.js +37 -20
- package/dist/builtins/fs/cat.js.map +1 -1
- package/dist/builtins/fs/cd.d.ts +3 -2
- package/dist/builtins/fs/cd.js +48 -33
- package/dist/builtins/fs/cd.js.map +1 -1
- package/dist/builtins/fs/cp.d.ts +4 -1
- package/dist/builtins/fs/cp.js +23 -10
- package/dist/builtins/fs/cp.js.map +1 -1
- package/dist/builtins/fs/download.js +5 -1
- package/dist/builtins/fs/download.js.map +1 -1
- package/dist/builtins/fs/edit.d.ts +2 -2
- package/dist/builtins/fs/edit.js +37 -19
- package/dist/builtins/fs/edit.js.map +1 -1
- package/dist/builtins/fs/mkdir.d.ts +4 -1
- package/dist/builtins/fs/mkdir.js +20 -6
- package/dist/builtins/fs/mkdir.js.map +1 -1
- package/dist/builtins/fs/mv.d.ts +4 -1
- package/dist/builtins/fs/mv.js +23 -10
- package/dist/builtins/fs/mv.js.map +1 -1
- package/dist/builtins/fs/pull.d.ts +2 -2
- package/dist/builtins/fs/pull.js +57 -29
- package/dist/builtins/fs/pull.js.map +1 -1
- package/dist/builtins/fs/pwd.d.ts +6 -3
- package/dist/builtins/fs/pwd.js +8 -10
- package/dist/builtins/fs/pwd.js.map +1 -1
- package/dist/builtins/fs/rm.d.ts +7 -1
- package/dist/builtins/fs/rm.js +61 -12
- package/dist/builtins/fs/rm.js.map +1 -1
- package/dist/builtins/fs/touch.d.ts +4 -1
- package/dist/builtins/fs/touch.js +24 -12
- package/dist/builtins/fs/touch.js.map +1 -1
- package/dist/builtins/fs/upload.js +4 -1
- package/dist/builtins/fs/upload.js.map +1 -1
- package/dist/builtins/index.d.ts +1 -0
- package/dist/builtins/index.js +1 -0
- package/dist/builtins/index.js.map +1 -1
- package/dist/builtins/sys/physicalmode.d.ts +3 -1
- package/dist/builtins/sys/physicalmode.js +13 -20
- package/dist/builtins/sys/physicalmode.js.map +1 -1
- package/dist/builtins/sys/timing.d.ts +3 -1
- package/dist/builtins/sys/timing.js +13 -20
- package/dist/builtins/sys/timing.js.map +1 -1
- package/dist/builtins/sys/version.d.ts +15 -0
- package/dist/builtins/sys/version.js +23 -0
- package/dist/builtins/sys/version.js.map +1 -0
- package/dist/builtins/sys/whoami.d.ts +9 -4
- package/dist/builtins/sys/whoami.js +20 -13
- package/dist/builtins/sys/whoami.js.map +1 -1
- package/dist/calypso.d.ts +13 -0
- package/dist/calypso.js +44 -0
- package/dist/calypso.js.map +1 -0
- package/dist/chell.d.ts +2 -1
- package/dist/chell.js +2 -1
- package/dist/chell.js.map +1 -1
- package/dist/core/boot.d.ts +3 -1
- package/dist/core/boot.js +50 -100
- package/dist/core/boot.js.map +1 -1
- package/dist/core/cli.d.ts +3 -1
- package/dist/core/cli.js +11 -1
- package/dist/core/cli.js.map +1 -1
- package/dist/core/cliSurface.d.ts +26 -0
- package/dist/core/cliSurface.js +152 -0
- package/dist/core/cliSurface.js.map +1 -0
- package/dist/core/dispatch.d.ts +63 -10
- package/dist/core/dispatch.js +326 -234
- package/dist/core/dispatch.js.map +1 -1
- package/dist/core/engine.d.ts +91 -0
- package/dist/core/engine.js +222 -0
- package/dist/core/engine.js.map +1 -0
- package/dist/core/progress.d.ts +25 -0
- package/dist/core/progress.js +10 -0
- package/dist/core/progress.js.map +1 -0
- package/dist/core/progressRenderer.d.ts +42 -0
- package/dist/core/progressRenderer.js +176 -0
- package/dist/core/progressRenderer.js.map +1 -0
- package/dist/core/prompt/session.d.ts +20 -0
- package/dist/core/prompt/session.js +43 -0
- package/dist/core/prompt/session.js.map +1 -0
- package/dist/core/question.d.ts +11 -18
- package/dist/core/question.js +14 -57
- package/dist/core/question.js.map +1 -1
- package/dist/core/repl.d.ts +25 -5
- package/dist/core/repl.js +56 -45
- package/dist/core/repl.js.map +1 -1
- package/dist/core/sink.d.ts +201 -0
- package/dist/core/sink.js +300 -0
- package/dist/core/sink.js.map +1 -0
- package/dist/core/surface.d.ts +172 -0
- package/dist/core/surface.js +105 -0
- package/dist/core/surface.js.map +1 -0
- package/dist/core/version.d.ts +20 -0
- package/dist/core/version.js +82 -0
- package/dist/core/version.js.map +1 -0
- package/dist/core/warnings.d.ts +14 -0
- package/dist/core/warnings.js +25 -0
- package/dist/core/warnings.js.map +1 -0
- package/dist/daemon/launch.d.ts +9 -0
- package/dist/daemon/launch.js +82 -0
- package/dist/daemon/launch.js.map +1 -0
- package/dist/index.js +2 -12
- package/dist/index.js.map +1 -1
- package/dist/lib/spinner.js +5 -4
- package/dist/lib/spinner.js.map +1 -1
- package/dist/lib/vfs/vfs.js +7 -3
- package/dist/lib/vfs/vfs.js.map +1 -1
- package/dist/remote/client.d.ts +6 -0
- package/dist/remote/client.js +71 -0
- package/dist/remote/client.js.map +1 -0
- package/dist/remote/discovery.d.ts +23 -0
- package/dist/remote/discovery.js +55 -0
- package/dist/remote/discovery.js.map +1 -0
- package/dist/remote/remoteEngine.d.ts +125 -0
- package/dist/remote/remoteEngine.js +283 -0
- package/dist/remote/remoteEngine.js.map +1 -0
- package/package.json +7 -5
package/dist/builtins/fs/pwd.js
CHANGED
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file Builtin pwd command.
|
|
3
|
-
*
|
|
3
|
+
* Reports the current working directory as a command envelope.
|
|
4
4
|
*/
|
|
5
5
|
import { session } from '../../session/index.js';
|
|
6
|
+
import { envelope_ok } from '@fnndsc/cumin';
|
|
6
7
|
import { feeds_list, pluginInstances_list } from '@fnndsc/salsa';
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
+
* Reports the current working directory in the ChRIS filesystem context.
|
|
9
10
|
*
|
|
10
11
|
* @param args - Command arguments (--title flag supported).
|
|
11
|
-
* @returns
|
|
12
|
+
* @returns An envelope whose rendered text is the directory (with feed and
|
|
13
|
+
* plugin segments replaced by titles under --title) and whose model
|
|
14
|
+
* carries the raw path.
|
|
12
15
|
*/
|
|
13
16
|
export async function builtin_pwd(args = []) {
|
|
14
17
|
const showTitles = args.includes('--title');
|
|
15
18
|
const cwd = await session.getCWD();
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
// Replace feed and plugin patterns with titles
|
|
21
|
-
const titlePath = await path_withTitles(cwd);
|
|
22
|
-
console.log(titlePath);
|
|
19
|
+
const shown = showTitles ? await path_withTitles(cwd) : cwd;
|
|
20
|
+
return envelope_ok(`${shown}\n`, { kind: 'fs.cwd', data: { path: cwd, shown } });
|
|
23
21
|
}
|
|
24
22
|
/**
|
|
25
23
|
* Replaces feed_XXXX and pl-<name>_XXXX patterns in a path with their titles.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pwd.js","sourceRoot":"","sources":["../../../src/builtins/fs/pwd.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"pwd.js","sourceRoot":"","sources":["../../../src/builtins/fs/pwd.ts"],"names":[],"mappings":"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"}
|
package/dist/builtins/fs/rm.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
1
2
|
/**
|
|
2
3
|
* Parsed `rm` arguments: flags plus the resolved list of path operands.
|
|
3
4
|
*/
|
|
@@ -26,6 +27,11 @@ export declare function rmSummary_format(successCount: number, failCount: number
|
|
|
26
27
|
/**
|
|
27
28
|
* Removes one or more files or directories.
|
|
28
29
|
*
|
|
30
|
+
* In interactive mode (-i) output is streamed live through the sink so each
|
|
31
|
+
* confirmation prompt appears in sequence with its result; the envelope then
|
|
32
|
+
* carries only the model. Otherwise output is buffered into the envelope.
|
|
33
|
+
*
|
|
29
34
|
* @param args - Command line arguments (flags and paths).
|
|
35
|
+
* @returns An envelope whose model lists per-target outcomes.
|
|
30
36
|
*/
|
|
31
|
-
export declare function builtin_rm(args: string[]): Promise<
|
|
37
|
+
export declare function builtin_rm(args: string[]): Promise<CommandEnvelope>;
|
package/dist/builtins/fs/rm.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file Builtin rm command.
|
|
3
|
-
* Removes files or directories.
|
|
3
|
+
* Removes files or directories, reported as a command envelope.
|
|
4
4
|
*/
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import path from 'path';
|
|
7
7
|
import * as readline from 'readline';
|
|
8
|
+
import { listCache_get, envelope_ok, envelope_error } from '@fnndsc/cumin';
|
|
8
9
|
import { path_resolve } from '../utils.js';
|
|
9
10
|
import { files_rm as chefs_rm_cmd } from '@fnndsc/chili/commands/fs/rm.js';
|
|
10
11
|
import { rm_render } from '@fnndsc/chili/views/fs.js';
|
|
11
|
-
import {
|
|
12
|
+
import { sink_get } from '../../core/sink.js';
|
|
12
13
|
/**
|
|
13
14
|
* Prompts the user for confirmation.
|
|
14
15
|
*
|
|
@@ -87,62 +88,110 @@ export function rmSummary_format(successCount, failCount) {
|
|
|
87
88
|
/**
|
|
88
89
|
* Removes one or more files or directories.
|
|
89
90
|
*
|
|
91
|
+
* In interactive mode (-i) output is streamed live through the sink so each
|
|
92
|
+
* confirmation prompt appears in sequence with its result; the envelope then
|
|
93
|
+
* carries only the model. Otherwise output is buffered into the envelope.
|
|
94
|
+
*
|
|
90
95
|
* @param args - Command line arguments (flags and paths).
|
|
96
|
+
* @returns An envelope whose model lists per-target outcomes.
|
|
91
97
|
*/
|
|
92
98
|
export async function builtin_rm(args) {
|
|
93
99
|
const { recursive, force, interactive, paths } = rmArgs_parse(args);
|
|
94
100
|
if (paths.length === 0) {
|
|
95
|
-
|
|
96
|
-
return;
|
|
101
|
+
return envelope_error('', undefined, `${chalk.red('Usage: rm [-rf] <path> [path...]')}\n`);
|
|
97
102
|
}
|
|
98
103
|
const options = { recursive, force };
|
|
99
104
|
let successCount = 0;
|
|
100
105
|
let failCount = 0;
|
|
106
|
+
let rendered = '';
|
|
107
|
+
let renderedErr = '';
|
|
108
|
+
const outcomes = [];
|
|
109
|
+
/**
|
|
110
|
+
* Emits one line of stdout output: streamed live in interactive mode,
|
|
111
|
+
* buffered into the envelope otherwise.
|
|
112
|
+
*
|
|
113
|
+
* @param line - The line to emit (without trailing newline).
|
|
114
|
+
*/
|
|
115
|
+
const out_emit = (line) => {
|
|
116
|
+
if (interactive) {
|
|
117
|
+
sink_get().data_write(`${line}\n`);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
rendered += `${line}\n`;
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Emits one line of error output: streamed live in interactive mode,
|
|
125
|
+
* buffered into the envelope otherwise.
|
|
126
|
+
*
|
|
127
|
+
* @param line - The line to emit (without trailing newline).
|
|
128
|
+
*/
|
|
129
|
+
const err_emit = (line) => {
|
|
130
|
+
if (interactive) {
|
|
131
|
+
sink_get().err_write(`${line}\n`);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
renderedErr += `${line}\n`;
|
|
135
|
+
}
|
|
136
|
+
};
|
|
101
137
|
for (const pathArg of paths) {
|
|
102
138
|
try {
|
|
103
139
|
const target = await path_resolve(pathArg);
|
|
104
140
|
if (target.startsWith('/bin/')) {
|
|
105
|
-
|
|
141
|
+
err_emit(chalk.red(`rm: cannot remove '${pathArg}': virtual /bin directory`));
|
|
142
|
+
outcomes.push({ path: pathArg, removed: false, skipped: false });
|
|
106
143
|
failCount++;
|
|
107
144
|
continue;
|
|
108
145
|
}
|
|
109
146
|
if (interactive) {
|
|
110
147
|
const confirmed = await prompt_confirm(`rm: remove '${pathArg}'? (y/n): `);
|
|
111
148
|
if (!confirmed) {
|
|
112
|
-
|
|
149
|
+
out_emit(chalk.gray(`skipped '${pathArg}'`));
|
|
150
|
+
outcomes.push({ path: pathArg, removed: false, skipped: true });
|
|
113
151
|
continue;
|
|
114
152
|
}
|
|
115
153
|
}
|
|
116
154
|
const result = await chefs_rm_cmd(target, options);
|
|
117
155
|
if (result.success) {
|
|
118
156
|
if (paths.length > 1) {
|
|
119
|
-
|
|
157
|
+
out_emit(chalk.gray(`removed '${pathArg}'`));
|
|
120
158
|
}
|
|
121
159
|
else {
|
|
122
|
-
|
|
160
|
+
out_emit(rm_render(result));
|
|
123
161
|
}
|
|
162
|
+
outcomes.push({ path: pathArg, removed: true, skipped: false });
|
|
124
163
|
successCount++;
|
|
125
164
|
const listCache = listCache_get();
|
|
126
165
|
const parentDir = path.posix.dirname(target);
|
|
127
166
|
listCache.cache_invalidate(parentDir);
|
|
128
167
|
}
|
|
129
168
|
else {
|
|
130
|
-
|
|
169
|
+
err_emit(chalk.red(`rm: cannot remove '${pathArg}': ${result.error || 'unknown error'}`));
|
|
170
|
+
outcomes.push({ path: pathArg, removed: false, skipped: false });
|
|
131
171
|
failCount++;
|
|
132
172
|
}
|
|
133
173
|
}
|
|
134
174
|
catch (e) {
|
|
135
175
|
const msg = e instanceof Error ? e.message : String(e);
|
|
136
|
-
|
|
176
|
+
err_emit(chalk.red(`rm: cannot remove '${pathArg}': ${msg}`));
|
|
177
|
+
outcomes.push({ path: pathArg, removed: false, skipped: false });
|
|
137
178
|
failCount++;
|
|
138
179
|
}
|
|
139
180
|
}
|
|
140
181
|
if (paths.length > 1) {
|
|
141
182
|
const summary = rmSummary_format(successCount, failCount);
|
|
142
183
|
if (summary) {
|
|
143
|
-
|
|
144
|
-
|
|
184
|
+
out_emit('');
|
|
185
|
+
out_emit(summary);
|
|
145
186
|
}
|
|
146
187
|
}
|
|
188
|
+
const model = { kind: 'fs.rm', data: outcomes };
|
|
189
|
+
if (failCount > 0) {
|
|
190
|
+
const envelope = envelope_error(rendered, undefined, renderedErr || undefined);
|
|
191
|
+
envelope.model = model;
|
|
192
|
+
return envelope;
|
|
193
|
+
}
|
|
194
|
+
const envelope = envelope_ok(rendered, model);
|
|
195
|
+
return envelope;
|
|
147
196
|
}
|
|
148
197
|
//# sourceMappingURL=rm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/builtins/fs/rm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAuB,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/builtins/fs/rm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAmB,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE5F,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAuB,MAAM,iCAAiC,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;;GAKG;AACH,KAAK,UAAU,cAAc,CAAC,OAAe;IAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAuB,QAAQ,CAAC,eAAe,CAAC;YACtD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAc,EAAE,EAAE;YACtC,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,SAAS,GAAY,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC;YAC/D,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAYD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,IAAI,SAAS,GAAY,KAAK,CAAC;IAC/B,IAAI,KAAK,GAAY,KAAK,CAAC;IAC3B,IAAI,WAAW,GAAY,KAAK,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,YAAY,GAAY,KAAK,CAAC;IAElC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,YAAY,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;oBAAE,SAAS,GAAG,IAAI,CAAC;qBAC1C,IAAI,EAAE,KAAK,GAAG;oBAAE,KAAK,GAAG,IAAI,CAAC;qBAC7B,IAAI,EAAE,KAAK,GAAG;oBAAE,WAAW,GAAG,IAAI,CAAC;YAC1C,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB,EAAE,SAAiB;IACtE,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,YAAY,GAAG,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC,KAAK,CAAC,wBAAwB,YAAY,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,YAAY,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,YAAY,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,SAAS,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,oBAAoB,SAAS,QAAQ,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtF,CAAC;AASD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,GAAW,YAAY,CAAC,IAAI,CAAC,CAAC;IAE5E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,IAAI,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,OAAO,GAAc,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAChD,IAAI,YAAY,GAAW,CAAC,CAAC;IAC7B,IAAI,SAAS,GAAW,CAAC,CAAC;IAC1B,IAAI,QAAQ,GAAW,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAW,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAgB,EAAE,CAAC;IAEjC;;;;;OAKG;IACH,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAQ,EAAE;QACtC,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,QAAQ,IAAI,GAAG,IAAI,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAQ,EAAE;QACtC,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,WAAW,IAAI,GAAG,IAAI,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,MAAM,GAAW,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;YAEnD,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,OAAO,2BAA2B,CAAC,CAAC,CAAC;gBAC9E,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjE,SAAS,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,SAAS,GAAY,MAAM,cAAc,CAAC,eAAe,OAAO,YAAY,CAAC,CAAC;gBACpF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,GAAG,CAAC,CAAC,CAAC;oBAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBAChE,SAAS;gBACX,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAa,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAE7D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,GAAG,CAAC,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9B,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChE,YAAY,EAAE,CAAC;gBAEf,MAAM,SAAS,GAAc,aAAa,EAAE,CAAC;gBAC7C,MAAM,SAAS,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrD,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,OAAO,MAAM,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC;gBAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBACjE,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,GAAG,GAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/D,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,OAAO,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;YAC9D,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACjE,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAkB,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACzE,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAwC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACrF,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAoB,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC;QAChG,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,QAAQ,GAAoB,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/D,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
1
2
|
/**
|
|
2
3
|
* Creates empty files or updates timestamps.
|
|
3
4
|
*
|
|
4
5
|
* @param args - Command line arguments (file paths).
|
|
6
|
+
* @returns An envelope whose rendered text reports each created file and
|
|
7
|
+
* whose model lists per-target outcomes.
|
|
5
8
|
*/
|
|
6
|
-
export declare function builtin_touch(args: string[]): Promise<
|
|
9
|
+
export declare function builtin_touch(args: string[]): Promise<CommandEnvelope>;
|
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file Builtin touch command.
|
|
3
|
-
* Creates files.
|
|
3
|
+
* Creates files, reported as a command envelope.
|
|
4
4
|
*/
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import path from 'path';
|
|
7
|
+
import { listCache_get, errorStack, envelope_ok, envelope_error } from '@fnndsc/cumin';
|
|
7
8
|
import { commandArgs_process, path_resolve, error_stripDebugPrefix } from '../utils.js';
|
|
8
9
|
import { files_touch as chefs_touch_cmd } from '@fnndsc/chili/commands/fs/touch.js';
|
|
9
10
|
import { touch_render } from '@fnndsc/chili/views/fs.js';
|
|
10
|
-
import { listCache_get, errorStack } from '@fnndsc/cumin';
|
|
11
11
|
/**
|
|
12
12
|
* Creates empty files or updates timestamps.
|
|
13
13
|
*
|
|
14
14
|
* @param args - Command line arguments (file paths).
|
|
15
|
+
* @returns An envelope whose rendered text reports each created file and
|
|
16
|
+
* whose model lists per-target outcomes.
|
|
15
17
|
*/
|
|
16
18
|
export async function builtin_touch(args) {
|
|
17
19
|
const parsed = commandArgs_process(args);
|
|
18
20
|
const pathArgs = parsed._;
|
|
19
21
|
if (pathArgs.length === 0) {
|
|
20
|
-
|
|
21
|
-
return;
|
|
22
|
+
return envelope_error('', undefined, `${chalk.red('Usage: touch [--withContents <string>] [--withContentsFromFile <file>] <file>')}\n`);
|
|
22
23
|
}
|
|
23
24
|
// Build options from parsed flags
|
|
24
25
|
const options = {};
|
|
@@ -32,33 +33,44 @@ export async function builtin_touch(args) {
|
|
|
32
33
|
const filesToTouch = (options.withContents || options.withContentsFromFile)
|
|
33
34
|
? [pathArgs[0]] // Only one file when injecting content
|
|
34
35
|
: pathArgs; // Multiple files allowed for empty touch
|
|
36
|
+
let rendered = '';
|
|
37
|
+
let renderedErr = '';
|
|
38
|
+
const outcomes = [];
|
|
35
39
|
for (const pathArg of filesToTouch) {
|
|
36
40
|
try {
|
|
37
41
|
const targetPath = await path_resolve(pathArg);
|
|
38
42
|
const success = await chefs_touch_cmd(targetPath, options);
|
|
39
43
|
if (success) {
|
|
40
|
-
|
|
44
|
+
rendered += `${touch_render(targetPath, success)}\n`;
|
|
45
|
+
outcomes.push({ path: targetPath, created: true });
|
|
41
46
|
// Invalidate cache for parent directory
|
|
42
47
|
const listCache = listCache_get();
|
|
43
48
|
const parentDir = path.posix.dirname(targetPath);
|
|
44
49
|
listCache.cache_invalidate(parentDir);
|
|
45
50
|
}
|
|
46
51
|
else {
|
|
47
|
-
// Touch failed,
|
|
52
|
+
// Touch failed, report the error from errorStack
|
|
48
53
|
const lastError = errorStack.stack_pop();
|
|
54
|
+
renderedErr += `${chalk.red(`Failed to create file: ${targetPath}`)}\n`;
|
|
49
55
|
if (lastError) {
|
|
50
|
-
|
|
51
|
-
console.error(chalk.gray(` ${error_stripDebugPrefix(lastError.message)}`));
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
console.error(chalk.red(`Failed to create file: ${targetPath}`));
|
|
56
|
+
renderedErr += `${chalk.gray(` ${error_stripDebugPrefix(lastError.message)}`)}\n`;
|
|
55
57
|
}
|
|
58
|
+
outcomes.push({ path: targetPath, created: false });
|
|
56
59
|
}
|
|
57
60
|
}
|
|
58
61
|
catch (e) {
|
|
59
62
|
const msg = e instanceof Error ? e.message : String(e);
|
|
60
|
-
|
|
63
|
+
renderedErr += `${chalk.red(`touch: ${pathArg}: ${msg}`)}\n`;
|
|
64
|
+
outcomes.push({ path: pathArg, created: false });
|
|
61
65
|
}
|
|
62
66
|
}
|
|
67
|
+
const anyFailed = outcomes.some((outcome) => !outcome.created);
|
|
68
|
+
const model = { kind: 'fs.touch', data: outcomes };
|
|
69
|
+
if (anyFailed) {
|
|
70
|
+
const envelope = envelope_error(rendered, undefined, renderedErr || undefined);
|
|
71
|
+
envelope.model = model;
|
|
72
|
+
return envelope;
|
|
73
|
+
}
|
|
74
|
+
return envelope_ok(rendered, model);
|
|
63
75
|
}
|
|
64
76
|
//# sourceMappingURL=touch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"touch.js","sourceRoot":"","sources":["../../../src/builtins/fs/touch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAc,mBAAmB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,WAAW,IAAI,eAAe,EAAgB,MAAM,oCAAoC,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"touch.js","sourceRoot":"","sources":["../../../src/builtins/fs/touch.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import chalk from 'chalk';
|
|
|
6
6
|
import { path_resolve } from '../utils.js';
|
|
7
7
|
import { files_uploadWithProgress as chefs_upload_cmd, bytes_format } from '@fnndsc/chili/commands/fs/upload.js';
|
|
8
8
|
import { listCache_get } from '@fnndsc/cumin';
|
|
9
|
+
import { sink_get } from '../../core/sink.js';
|
|
9
10
|
/**
|
|
10
11
|
* Uploads a local file or directory to ChRIS.
|
|
11
12
|
*
|
|
@@ -20,7 +21,9 @@ export async function builtin_upload(args) {
|
|
|
20
21
|
const remotePath = args[1];
|
|
21
22
|
const targetRemote = await path_resolve(remotePath);
|
|
22
23
|
try {
|
|
23
|
-
const summary = await chefs_upload_cmd(localPath, targetRemote
|
|
24
|
+
const summary = await chefs_upload_cmd(localPath, targetRemote, {
|
|
25
|
+
onProgress: event => sink_get().progress_write(event),
|
|
26
|
+
});
|
|
24
27
|
console.log('');
|
|
25
28
|
if (summary.failedCount === 0) {
|
|
26
29
|
console.log(chalk.green(`✓ Successfully uploaded ${summary.transferredCount} file(s)`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/builtins/fs/upload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAiB,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAChI,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/builtins/fs/upload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAiB,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAChI,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,UAAU,GAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAW,MAAM,YAAY,CAAC,UAAU,CAAC,CAAC;IAE5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAkB,MAAM,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE;YAC7E,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;SACtD,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,gBAAgB,UAAU,CAAC,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,OAAO,CAAC,gBAAgB,aAAa,OAAO,CAAC,WAAW,SAAS,CAAC,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhJ,yEAAyE;QACzE,IAAI,OAAO,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;YAClC,SAAS,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACrD,gDAAgD;YAChD,SAAS,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,GAAG,GAAW,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
|
package/dist/builtins/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export * from './sys/context.js';
|
|
|
26
26
|
export * from './sys/physicalmode.js';
|
|
27
27
|
export * from './sys/prompt.js';
|
|
28
28
|
export * from './sys/timing.js';
|
|
29
|
+
export * from './sys/version.js';
|
|
29
30
|
export * from './sys/whoami.js';
|
|
30
31
|
export * from './debug.js';
|
|
31
32
|
export * from './help.js';
|
package/dist/builtins/index.js
CHANGED
|
@@ -26,6 +26,7 @@ export * from './sys/context.js';
|
|
|
26
26
|
export * from './sys/physicalmode.js';
|
|
27
27
|
export * from './sys/prompt.js';
|
|
28
28
|
export * from './sys/timing.js';
|
|
29
|
+
export * from './sys/version.js';
|
|
29
30
|
export * from './sys/whoami.js';
|
|
30
31
|
export * from './debug.js';
|
|
31
32
|
export * from './help.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAE3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAE1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAE3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAE1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
1
2
|
/**
|
|
2
3
|
* Toggles or displays physical filesystem mode.
|
|
3
4
|
*
|
|
4
5
|
* @param args - Command line arguments: 'on', 'off', or empty to display status.
|
|
6
|
+
* @returns An envelope describing the (possibly updated) physical mode state.
|
|
5
7
|
*/
|
|
6
|
-
export declare function builtin_physicalmode(args: string[]): Promise<
|
|
8
|
+
export declare function builtin_physicalmode(args: string[]): Promise<CommandEnvelope>;
|
|
@@ -1,41 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file Builtin physicalmode command.
|
|
3
|
-
* Toggles physical filesystem mode.
|
|
3
|
+
* Toggles physical filesystem mode, reported as a command envelope.
|
|
4
4
|
*/
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
+
import { envelope_ok, envelope_error } from '@fnndsc/cumin';
|
|
6
7
|
import { session } from '../../session/index.js';
|
|
7
8
|
/**
|
|
8
9
|
* Toggles or displays physical filesystem mode.
|
|
9
10
|
*
|
|
10
11
|
* @param args - Command line arguments: 'on', 'off', or empty to display status.
|
|
12
|
+
* @returns An envelope describing the (possibly updated) physical mode state.
|
|
11
13
|
*/
|
|
12
14
|
export async function builtin_physicalmode(args) {
|
|
13
15
|
const subcommand = args[0];
|
|
14
16
|
if (!subcommand) {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
console.log(chalk.gray(' Paths are resolved through logical-to-physical mapping.'));
|
|
22
|
-
}
|
|
23
|
-
console.log(chalk.gray('\nUsage: physicalmode [on|off]'));
|
|
24
|
-
return;
|
|
17
|
+
const enabled = session.physicalMode_get();
|
|
18
|
+
const status = enabled ? 'enabled' : 'disabled';
|
|
19
|
+
const detail = enabled
|
|
20
|
+
? chalk.gray(' Paths are used directly without logical-to-physical mapping.')
|
|
21
|
+
: chalk.gray(' Paths are resolved through logical-to-physical mapping.');
|
|
22
|
+
return envelope_ok(`Physical filesystem mode: ${chalk.yellow(status)}\n${detail}\n${chalk.gray('\nUsage: physicalmode [on|off]')}\n`, { kind: 'sys.physicalMode', data: { enabled } });
|
|
25
23
|
}
|
|
26
24
|
if (subcommand === 'on') {
|
|
27
25
|
session.physicalMode_set(true);
|
|
28
|
-
|
|
29
|
-
console.log(chalk.gray(' Paths will be used directly without logical-to-physical mapping.'));
|
|
26
|
+
return envelope_ok(`${chalk.yellow('[!] Physical filesystem mode enabled')}\n${chalk.gray(' Paths will be used directly without logical-to-physical mapping.')}\n`, { kind: 'sys.physicalMode', data: { enabled: true } });
|
|
30
27
|
}
|
|
31
|
-
|
|
28
|
+
if (subcommand === 'off') {
|
|
32
29
|
session.physicalMode_set(false);
|
|
33
|
-
|
|
34
|
-
console.log(chalk.gray(' Paths will be resolved through logical-to-physical mapping.'));
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
console.log(chalk.red(`Unknown argument: ${subcommand}`));
|
|
38
|
-
console.log(chalk.gray('Usage: physicalmode [on|off]'));
|
|
30
|
+
return envelope_ok(`${chalk.green('[+] Physical filesystem mode disabled')}\n${chalk.gray(' Paths will be resolved through logical-to-physical mapping.')}\n`, { kind: 'sys.physicalMode', data: { enabled: false } });
|
|
39
31
|
}
|
|
32
|
+
return envelope_error(`${chalk.red(`Unknown argument: ${subcommand}`)}\n${chalk.gray('Usage: physicalmode [on|off]')}\n`);
|
|
40
33
|
}
|
|
41
34
|
//# sourceMappingURL=physicalmode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"physicalmode.js","sourceRoot":"","sources":["../../../src/builtins/sys/physicalmode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"physicalmode.js","sourceRoot":"","sources":["../../../src/builtins/sys/physicalmode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAc;IACvD,MAAM,UAAU,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,OAAO,GAAY,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACpD,MAAM,MAAM,GAAW,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QACxD,MAAM,MAAM,GAAW,OAAO;YAC5B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC;YAC9E,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC5E,OAAO,WAAW,CAChB,6BAA6B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,IAAI,EACjH,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAChD,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,WAAW,CAChB,GAAG,KAAK,CAAC,MAAM,CAAC,sCAAsC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,IAAI,EAClJ,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CACtD,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,WAAW,CAChB,GAAG,KAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,IAAI,EAC7I,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CACvD,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CACnB,GAAG,KAAK,CAAC,GAAG,CAAC,qBAAqB,UAAU,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CACnG,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
1
2
|
/**
|
|
2
3
|
* Toggles or displays command timing mode.
|
|
3
4
|
*
|
|
4
5
|
* @param args - Command line arguments: 'on', 'off', or empty to display status.
|
|
6
|
+
* @returns An envelope describing the (possibly updated) timing state.
|
|
5
7
|
*/
|
|
6
|
-
export declare function builtin_timing(args: string[]): Promise<
|
|
8
|
+
export declare function builtin_timing(args: string[]): Promise<CommandEnvelope>;
|
|
@@ -1,41 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @file Builtin timing command.
|
|
3
|
-
* Toggles execution timing.
|
|
3
|
+
* Toggles execution timing, reported as a command envelope.
|
|
4
4
|
*/
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
+
import { envelope_ok, envelope_error } from '@fnndsc/cumin';
|
|
6
7
|
import { session } from '../../session/index.js';
|
|
7
8
|
/**
|
|
8
9
|
* Toggles or displays command timing mode.
|
|
9
10
|
*
|
|
10
11
|
* @param args - Command line arguments: 'on', 'off', or empty to display status.
|
|
12
|
+
* @returns An envelope describing the (possibly updated) timing state.
|
|
11
13
|
*/
|
|
12
14
|
export async function builtin_timing(args) {
|
|
13
15
|
const subcommand = args[0];
|
|
14
16
|
if (!subcommand) {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
console.log(chalk.gray(' Execution times are hidden.'));
|
|
22
|
-
}
|
|
23
|
-
console.log(chalk.gray('\nUsage: timing [on|off]'));
|
|
24
|
-
return;
|
|
17
|
+
const enabled = session.timingEnabled_get();
|
|
18
|
+
const status = enabled ? 'enabled' : 'disabled';
|
|
19
|
+
const detail = enabled
|
|
20
|
+
? chalk.gray(' Execution times will be displayed after each command.')
|
|
21
|
+
: chalk.gray(' Execution times are hidden.');
|
|
22
|
+
return envelope_ok(`Command timing: ${chalk.yellow(status)}\n${detail}\n${chalk.gray('\nUsage: timing [on|off]')}\n`, { kind: 'sys.timing', data: { enabled } });
|
|
25
23
|
}
|
|
26
24
|
if (subcommand === 'on') {
|
|
27
25
|
session.timingEnabled_set(true);
|
|
28
|
-
|
|
29
|
-
console.log(chalk.gray(' Execution times will be displayed after each command.'));
|
|
26
|
+
return envelope_ok(`${chalk.green('[+] Command timing enabled')}\n${chalk.gray(' Execution times will be displayed after each command.')}\n`, { kind: 'sys.timing', data: { enabled: true } });
|
|
30
27
|
}
|
|
31
|
-
|
|
28
|
+
if (subcommand === 'off') {
|
|
32
29
|
session.timingEnabled_set(false);
|
|
33
|
-
|
|
34
|
-
console.log(chalk.gray(' Execution times will no longer be displayed.'));
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
console.log(chalk.red(`Unknown argument: ${subcommand}`));
|
|
38
|
-
console.log(chalk.gray('Usage: timing [on|off]'));
|
|
30
|
+
return envelope_ok(`${chalk.gray('[-] Command timing disabled')}\n${chalk.gray(' Execution times will no longer be displayed.')}\n`, { kind: 'sys.timing', data: { enabled: false } });
|
|
39
31
|
}
|
|
32
|
+
return envelope_error(`${chalk.red(`Unknown argument: ${subcommand}`)}\n${chalk.gray('Usage: timing [on|off]')}\n`);
|
|
40
33
|
}
|
|
41
34
|
//# sourceMappingURL=timing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../src/builtins/sys/timing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../src/builtins/sys/timing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,MAAM,UAAU,GAAuB,IAAI,CAAC,CAAC,CAAC,CAAC;IAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,OAAO,GAAY,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACrD,MAAM,MAAM,GAAW,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QACxD,MAAM,MAAM,GAAW,OAAO;YAC5B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC;YACvE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAChD,OAAO,WAAW,CAChB,mBAAmB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,EACjG,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAC1C,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,WAAW,CAChB,GAAG,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,IAAI,EAC5H,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAChD,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,WAAW,CAChB,GAAG,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,IAAI,EACnH,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CACjD,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CACnB,GAAG,KAAK,CAAC,GAAG,CAAC,qBAAqB,UAAU,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAC7F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Builtin version.
|
|
3
|
+
* Reports the chell stack versions (chell plus the chili/salsa/cumin layers) as
|
|
4
|
+
* a command envelope — the in-shell counterpart of `chell --version`.
|
|
5
|
+
*/
|
|
6
|
+
import { CommandEnvelope } from '@fnndsc/cumin';
|
|
7
|
+
/**
|
|
8
|
+
* Reports the version of chell and the sandwich layers it runs with — the same
|
|
9
|
+
* report as `chell --version`, available from inside the shell.
|
|
10
|
+
*
|
|
11
|
+
* @param _args - Unused.
|
|
12
|
+
* @returns An envelope carrying the multi-line version report and a typed model
|
|
13
|
+
* of each layer's version.
|
|
14
|
+
*/
|
|
15
|
+
export declare function builtin_version(_args: string[]): Promise<CommandEnvelope>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Builtin version.
|
|
3
|
+
* Reports the chell stack versions (chell plus the chili/salsa/cumin layers) as
|
|
4
|
+
* a command envelope — the in-shell counterpart of `chell --version`.
|
|
5
|
+
*/
|
|
6
|
+
import { envelope_ok } from '@fnndsc/cumin';
|
|
7
|
+
import { versionReport_build, versions_get } from '../../core/version.js';
|
|
8
|
+
/**
|
|
9
|
+
* Reports the version of chell and the sandwich layers it runs with — the same
|
|
10
|
+
* report as `chell --version`, available from inside the shell.
|
|
11
|
+
*
|
|
12
|
+
* @param _args - Unused.
|
|
13
|
+
* @returns An envelope carrying the multi-line version report and a typed model
|
|
14
|
+
* of each layer's version.
|
|
15
|
+
*/
|
|
16
|
+
export async function builtin_version(_args) {
|
|
17
|
+
const versions = versions_get();
|
|
18
|
+
return envelope_ok(`${versionReport_build()}\n`, {
|
|
19
|
+
kind: 'sys.version',
|
|
20
|
+
data: versions,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/builtins/sys/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAmB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAsB,MAAM,uBAAuB,CAAC;AAE9F;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAe;IACnD,MAAM,QAAQ,GAAkB,YAAY,EAAE,CAAC;IAC/C,OAAO,WAAW,CAAC,GAAG,mBAAmB,EAAE,IAAI,EAAE;QAC/C,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;AACL,CAAC"}
|