@fnndsc/brasa 0.1.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 +8 -0
- package/dist/builtins/debug.js +39 -0
- package/dist/builtins/debug.js.map +1 -0
- package/dist/builtins/executable.d.ts +22 -0
- package/dist/builtins/executable.js +115 -0
- package/dist/builtins/executable.js.map +1 -0
- package/dist/builtins/fs/cat.d.ts +16 -0
- package/dist/builtins/fs/cat.js +266 -0
- package/dist/builtins/fs/cat.js.map +1 -0
- package/dist/builtins/fs/cd.d.ts +42 -0
- package/dist/builtins/fs/cd.js +193 -0
- package/dist/builtins/fs/cd.js.map +1 -0
- package/dist/builtins/fs/cp.d.ts +10 -0
- package/dist/builtins/fs/cp.js +86 -0
- package/dist/builtins/fs/cp.js.map +1 -0
- package/dist/builtins/fs/download.d.ts +6 -0
- package/dist/builtins/fs/download.js +45 -0
- package/dist/builtins/fs/download.js.map +1 -0
- package/dist/builtins/fs/du.d.ts +58 -0
- package/dist/builtins/fs/du.js +210 -0
- package/dist/builtins/fs/du.js.map +1 -0
- package/dist/builtins/fs/edit.d.ts +7 -0
- package/dist/builtins/fs/edit.js +104 -0
- package/dist/builtins/fs/edit.js.map +1 -0
- package/dist/builtins/fs/ls.d.ts +8 -0
- package/dist/builtins/fs/ls.js +68 -0
- package/dist/builtins/fs/ls.js.map +1 -0
- package/dist/builtins/fs/mkdir.d.ts +9 -0
- package/dist/builtins/fs/mkdir.js +52 -0
- package/dist/builtins/fs/mkdir.js.map +1 -0
- package/dist/builtins/fs/mv.d.ts +10 -0
- package/dist/builtins/fs/mv.js +88 -0
- package/dist/builtins/fs/mv.js.map +1 -0
- package/dist/builtins/fs/pull.args.d.ts +22 -0
- package/dist/builtins/fs/pull.args.js +30 -0
- package/dist/builtins/fs/pull.args.js.map +1 -0
- package/dist/builtins/fs/pull.d.ts +26 -0
- package/dist/builtins/fs/pull.js +445 -0
- package/dist/builtins/fs/pull.js.map +1 -0
- package/dist/builtins/fs/pwd.d.ts +10 -0
- package/dist/builtins/fs/pwd.js +73 -0
- package/dist/builtins/fs/pwd.js.map +1 -0
- package/dist/builtins/fs/rm.d.ts +37 -0
- package/dist/builtins/fs/rm.js +197 -0
- package/dist/builtins/fs/rm.js.map +1 -0
- package/dist/builtins/fs/touch.d.ts +9 -0
- package/dist/builtins/fs/touch.js +76 -0
- package/dist/builtins/fs/touch.js.map +1 -0
- package/dist/builtins/fs/tree.d.ts +15 -0
- package/dist/builtins/fs/tree.js +84 -0
- package/dist/builtins/fs/tree.js.map +1 -0
- package/dist/builtins/fs/upload.d.ts +6 -0
- package/dist/builtins/fs/upload.js +48 -0
- package/dist/builtins/fs/upload.js.map +1 -0
- package/dist/builtins/help.d.ts +74 -0
- package/dist/builtins/help.js +1217 -0
- package/dist/builtins/help.js.map +1 -0
- package/dist/builtins/index.d.ts +45 -0
- package/dist/builtins/index.js +45 -0
- package/dist/builtins/index.js.map +1 -0
- package/dist/builtins/net/connect.d.ts +7 -0
- package/dist/builtins/net/connect.js +42 -0
- package/dist/builtins/net/connect.js.map +1 -0
- package/dist/builtins/net/cubepath.d.ts +18 -0
- package/dist/builtins/net/cubepath.js +102 -0
- package/dist/builtins/net/cubepath.js.map +1 -0
- package/dist/builtins/net/logout.d.ts +6 -0
- package/dist/builtins/net/logout.js +24 -0
- package/dist/builtins/net/logout.js.map +1 -0
- package/dist/builtins/net/pacs.d.ts +24 -0
- package/dist/builtins/net/pacs.js +121 -0
- package/dist/builtins/net/pacs.js.map +1 -0
- package/dist/builtins/net/pacsUtils.d.ts +85 -0
- package/dist/builtins/net/pacsUtils.js +184 -0
- package/dist/builtins/net/pacsUtils.js.map +1 -0
- package/dist/builtins/net/query.d.ts +60 -0
- package/dist/builtins/net/query.js +324 -0
- package/dist/builtins/net/query.js.map +1 -0
- package/dist/builtins/parametersofplugin.d.ts +13 -0
- package/dist/builtins/parametersofplugin.js +43 -0
- package/dist/builtins/parametersofplugin.js.map +1 -0
- package/dist/builtins/pluginExecute.d.ts +27 -0
- package/dist/builtins/pluginExecute.js +165 -0
- package/dist/builtins/pluginExecute.js.map +1 -0
- package/dist/builtins/proc.d.ts +6 -0
- package/dist/builtins/proc.helpers.d.ts +68 -0
- package/dist/builtins/proc.helpers.js +102 -0
- package/dist/builtins/proc.helpers.js.map +1 -0
- package/dist/builtins/proc.js +289 -0
- package/dist/builtins/proc.js.map +1 -0
- package/dist/builtins/res/compute.d.ts +6 -0
- package/dist/builtins/res/compute.js +55 -0
- package/dist/builtins/res/compute.js.map +1 -0
- package/dist/builtins/res/feed.d.ts +6 -0
- package/dist/builtins/res/feed.js +244 -0
- package/dist/builtins/res/feed.js.map +1 -0
- package/dist/builtins/res/feed.notes.d.ts +28 -0
- package/dist/builtins/res/feed.notes.js +24 -0
- package/dist/builtins/res/feed.notes.js.map +1 -0
- package/dist/builtins/res/files.d.ts +18 -0
- package/dist/builtins/res/files.js +85 -0
- package/dist/builtins/res/files.js.map +1 -0
- package/dist/builtins/res/group.d.ts +6 -0
- package/dist/builtins/res/group.js +54 -0
- package/dist/builtins/res/group.js.map +1 -0
- package/dist/builtins/res/pipeline.args.d.ts +22 -0
- package/dist/builtins/res/pipeline.args.js +28 -0
- package/dist/builtins/res/pipeline.args.js.map +1 -0
- package/dist/builtins/res/pipeline.d.ts +20 -0
- package/dist/builtins/res/pipeline.js +252 -0
- package/dist/builtins/res/pipeline.js.map +1 -0
- package/dist/builtins/res/plugin.d.ts +13 -0
- package/dist/builtins/res/plugin.js +140 -0
- package/dist/builtins/res/plugin.js.map +1 -0
- package/dist/builtins/res/plugininstance.d.ts +6 -0
- package/dist/builtins/res/plugininstance.js +53 -0
- package/dist/builtins/res/plugininstance.js.map +1 -0
- package/dist/builtins/res/pluginmeta.d.ts +6 -0
- package/dist/builtins/res/pluginmeta.js +53 -0
- package/dist/builtins/res/pluginmeta.js.map +1 -0
- package/dist/builtins/res/tag.d.ts +6 -0
- package/dist/builtins/res/tag.js +53 -0
- package/dist/builtins/res/tag.js.map +1 -0
- package/dist/builtins/res/workflow.d.ts +6 -0
- package/dist/builtins/res/workflow.js +53 -0
- package/dist/builtins/res/workflow.js.map +1 -0
- package/dist/builtins/store.d.ts +6 -0
- package/dist/builtins/store.js +107 -0
- package/dist/builtins/store.js.map +1 -0
- package/dist/builtins/sys/context.d.ts +6 -0
- package/dist/builtins/sys/context.js +50 -0
- package/dist/builtins/sys/context.js.map +1 -0
- package/dist/builtins/sys/physicalmode.d.ts +8 -0
- package/dist/builtins/sys/physicalmode.js +34 -0
- package/dist/builtins/sys/physicalmode.js.map +1 -0
- package/dist/builtins/sys/timing.d.ts +8 -0
- package/dist/builtins/sys/timing.js +34 -0
- package/dist/builtins/sys/timing.js.map +1 -0
- 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 +17 -0
- package/dist/builtins/sys/whoami.js +44 -0
- package/dist/builtins/sys/whoami.js.map +1 -0
- package/dist/builtins/utils.d.ts +55 -0
- package/dist/builtins/utils.js +145 -0
- package/dist/builtins/utils.js.map +1 -0
- package/dist/builtins/wildcard.d.ts +26 -0
- package/dist/builtins/wildcard.js +120 -0
- package/dist/builtins/wildcard.js.map +1 -0
- package/dist/command-keys.d.ts +8 -0
- package/dist/command-keys.js +32 -0
- package/dist/command-keys.js.map +1 -0
- package/dist/config/storeConfig.d.ts +57 -0
- package/dist/config/storeConfig.js +78 -0
- package/dist/config/storeConfig.js.map +1 -0
- package/dist/core/chiliDelegate.d.ts +21 -0
- package/dist/core/chiliDelegate.js +32 -0
- package/dist/core/chiliDelegate.js.map +1 -0
- package/dist/core/connect.d.ts +38 -0
- package/dist/core/connect.js +46 -0
- package/dist/core/connect.js.map +1 -0
- package/dist/core/dispatch.d.ts +95 -0
- package/dist/core/dispatch.js +618 -0
- package/dist/core/dispatch.js.map +1 -0
- 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/preprocess.d.ts +46 -0
- package/dist/core/preprocess.js +146 -0
- package/dist/core/preprocess.js.map +1 -0
- package/dist/core/progress.d.ts +50 -0
- package/dist/core/progress.js +21 -0
- package/dist/core/progress.js.map +1 -0
- package/dist/core/promptContext.d.ts +49 -0
- package/dist/core/promptContext.js +39 -0
- package/dist/core/promptContext.js.map +1 -0
- package/dist/core/question.d.ts +27 -0
- package/dist/core/question.js +33 -0
- package/dist/core/question.js.map +1 -0
- package/dist/core/sink.d.ts +207 -0
- package/dist/core/sink.js +329 -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/index.d.ts +31 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/completer/index.d.ts +15 -0
- package/dist/lib/completer/index.js +212 -0
- package/dist/lib/completer/index.js.map +1 -0
- package/dist/lib/completer/pathComplete.helpers.d.ts +22 -0
- package/dist/lib/completer/pathComplete.helpers.js +49 -0
- package/dist/lib/completer/pathComplete.helpers.js.map +1 -0
- package/dist/lib/parser.d.ts +13 -0
- package/dist/lib/parser.js +52 -0
- package/dist/lib/parser.js.map +1 -0
- package/dist/lib/pipe.d.ts +11 -0
- package/dist/lib/pipe.js +90 -0
- package/dist/lib/pipe.js.map +1 -0
- package/dist/lib/prefetch.d.ts +25 -0
- package/dist/lib/prefetch.js +64 -0
- package/dist/lib/prefetch.js.map +1 -0
- package/dist/lib/semicolonParser.d.ts +22 -0
- package/dist/lib/semicolonParser.js +53 -0
- package/dist/lib/semicolonParser.js.map +1 -0
- package/dist/lib/spinner.d.ts +23 -0
- package/dist/lib/spinner.js +71 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/lib/vfs/providers/static.d.ts +65 -0
- package/dist/lib/vfs/providers/static.js +164 -0
- package/dist/lib/vfs/providers/static.js.map +1 -0
- package/dist/lib/vfs/providers/static_content.d.ts +27 -0
- package/dist/lib/vfs/providers/static_content.js +180 -0
- package/dist/lib/vfs/providers/static_content.js.map +1 -0
- package/dist/lib/vfs/vfs.d.ts +59 -0
- package/dist/lib/vfs/vfs.js +202 -0
- package/dist/lib/vfs/vfs.js.map +1 -0
- package/dist/session/index.d.ts +76 -0
- package/dist/session/index.js +120 -0
- package/dist/session/index.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Pure helpers for editing feed notes via an external editor.
|
|
3
|
+
*
|
|
4
|
+
* Formats a note into an editable buffer and parses the edited buffer back into
|
|
5
|
+
* title/content. Kept dependency-free so it is trivially unit-testable.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { FeedNote } from '@fnndsc/chili/commands/feed/note.js';
|
|
10
|
+
/**
|
|
11
|
+
* Formats a feed note into the editable buffer presented in `$EDITOR`.
|
|
12
|
+
*
|
|
13
|
+
* @param note - The note to format.
|
|
14
|
+
* @returns The buffer text (a `# Title:` header followed by the content).
|
|
15
|
+
*/
|
|
16
|
+
export declare function noteEditBody_format(note: FeedNote): string;
|
|
17
|
+
/**
|
|
18
|
+
* Parses an edited note buffer back into title and content, falling back to the
|
|
19
|
+
* original title if the header was removed.
|
|
20
|
+
*
|
|
21
|
+
* @param edited - The buffer text after editing.
|
|
22
|
+
* @param fallbackTitle - Title to use when no `# Title:` header is present.
|
|
23
|
+
* @returns The parsed title and content.
|
|
24
|
+
*/
|
|
25
|
+
export declare function noteEditBody_parse(edited: string, fallbackTitle: string): {
|
|
26
|
+
title: string;
|
|
27
|
+
content: string;
|
|
28
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formats a feed note into the editable buffer presented in `$EDITOR`.
|
|
3
|
+
*
|
|
4
|
+
* @param note - The note to format.
|
|
5
|
+
* @returns The buffer text (a `# Title:` header followed by the content).
|
|
6
|
+
*/
|
|
7
|
+
export function noteEditBody_format(note) {
|
|
8
|
+
return `# Title: ${note.title}\n\n${note.content}`;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Parses an edited note buffer back into title and content, falling back to the
|
|
12
|
+
* original title if the header was removed.
|
|
13
|
+
*
|
|
14
|
+
* @param edited - The buffer text after editing.
|
|
15
|
+
* @param fallbackTitle - Title to use when no `# Title:` header is present.
|
|
16
|
+
* @returns The parsed title and content.
|
|
17
|
+
*/
|
|
18
|
+
export function noteEditBody_parse(edited, fallbackTitle) {
|
|
19
|
+
const titleMatch = edited.match(/^#\s*Title:\s*(.+)/m);
|
|
20
|
+
const title = titleMatch ? titleMatch[1].trim() : fallbackTitle;
|
|
21
|
+
const content = edited.replace(/^#\s*Title:.*\n?/m, '').replace(/^\n+/, '');
|
|
22
|
+
return { title, content };
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=feed.notes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed.notes.js","sourceRoot":"","sources":["../../../src/builtins/res/feed.notes.ts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAc;IAChD,OAAO,YAAY,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,aAAqB;IACtE,MAAM,UAAU,GAA4B,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAChF,MAAM,KAAK,GAAW,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IACxE,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handles files commands.
|
|
3
|
+
*
|
|
4
|
+
* @param args - command arguments.
|
|
5
|
+
*/
|
|
6
|
+
export declare function builtin_files(args: string[]): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Handles links commands.
|
|
9
|
+
*
|
|
10
|
+
* @param args - command arguments.
|
|
11
|
+
*/
|
|
12
|
+
export declare function builtin_links(args: string[]): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Handles dirs commands.
|
|
15
|
+
*
|
|
16
|
+
* @param args - command arguments.
|
|
17
|
+
*/
|
|
18
|
+
export declare function builtin_dirs(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Builtin files command (and links, dirs).
|
|
3
|
+
* Manages file resources.
|
|
4
|
+
*/
|
|
5
|
+
import chalk from 'chalk';
|
|
6
|
+
import { commandArgs_process } from '../utils.js';
|
|
7
|
+
import { files_fetchList } from '@fnndsc/chili/commands/files/list.js';
|
|
8
|
+
import { fileFields_fetch } from '@fnndsc/chili/commands/files/fields.js';
|
|
9
|
+
import { table_display } from '@fnndsc/chili/screen/screen.js';
|
|
10
|
+
import { chiliCommand_run } from '../../core/chiliDelegate.js';
|
|
11
|
+
/**
|
|
12
|
+
* Generic handler for file group commands (files, links, dirs).
|
|
13
|
+
*
|
|
14
|
+
* @param args - command arguments.
|
|
15
|
+
* @param assetName - the asset type ('files', 'links', 'dirs').
|
|
16
|
+
*/
|
|
17
|
+
async function builtin_fileGroup(args, assetName) {
|
|
18
|
+
const parsed = commandArgs_process(args);
|
|
19
|
+
const subcommand = parsed._[0];
|
|
20
|
+
if (!subcommand) {
|
|
21
|
+
console.log(chalk.red(`Usage: ${assetName} <list|search|inspect> ...`));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
try {
|
|
25
|
+
if (subcommand === 'list') {
|
|
26
|
+
const path = parsed._[1];
|
|
27
|
+
const results = await files_fetchList(parsed, assetName, path);
|
|
28
|
+
if (!results) {
|
|
29
|
+
console.error(`No ${assetName} resources found. Perhaps check your current context?`);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (results.tableData.length === 0) {
|
|
33
|
+
console.log(`No ${assetName} found matching the criteria.`);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
table_display(results.tableData, results.selectedFields, {
|
|
37
|
+
title: { title: assetName, justification: "center" },
|
|
38
|
+
pagination: results.totalCount !== undefined ? { shown: results.tableData.length, total: results.totalCount } : undefined,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (subcommand === 'inspect' || subcommand === 'fieldslist') {
|
|
43
|
+
const fields = await fileFields_fetch(assetName);
|
|
44
|
+
if (fields && fields.length > 0) {
|
|
45
|
+
table_display(fields.map(f => ({ fields: f })), ["fields"]);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
console.log(`No resource fields found for ${assetName}.`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
console.log(chalk.yellow('Directive not handled by chell... spawning chili directly'));
|
|
53
|
+
await chiliCommand_run(assetName, ['-s', ...args]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
58
|
+
console.error(chalk.red(`${assetName} error: ${msg}`));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Handles files commands.
|
|
63
|
+
*
|
|
64
|
+
* @param args - command arguments.
|
|
65
|
+
*/
|
|
66
|
+
export async function builtin_files(args) {
|
|
67
|
+
await builtin_fileGroup(args, 'files');
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Handles links commands.
|
|
71
|
+
*
|
|
72
|
+
* @param args - command arguments.
|
|
73
|
+
*/
|
|
74
|
+
export async function builtin_links(args) {
|
|
75
|
+
await builtin_fileGroup(args, 'links');
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Handles dirs commands.
|
|
79
|
+
*
|
|
80
|
+
* @param args - command arguments.
|
|
81
|
+
*/
|
|
82
|
+
export async function builtin_dirs(args) {
|
|
83
|
+
await builtin_fileGroup(args, 'dirs');
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/builtins/res/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Builtin group command.
|
|
3
|
+
*
|
|
4
|
+
* Subcommands: list, search, inspect
|
|
5
|
+
* [admin]: create, delete, adduser, removeuser
|
|
6
|
+
* Singular/plural aliases: group / groups
|
|
7
|
+
*/
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
import { commandArgs_process } from '../utils.js';
|
|
10
|
+
import { groups_fetchList } from '@fnndsc/chili/commands/groups/list.js';
|
|
11
|
+
import { groupFields_fetch } from '@fnndsc/chili/commands/groups/fields.js';
|
|
12
|
+
import { table_display } from '@fnndsc/chili/screen/screen.js';
|
|
13
|
+
/**
|
|
14
|
+
* Builtin handler for the `group` command.
|
|
15
|
+
*
|
|
16
|
+
* @param args - Parsed command arguments for the group command.
|
|
17
|
+
*/
|
|
18
|
+
export async function builtin_group(args) {
|
|
19
|
+
const parsed = commandArgs_process(args);
|
|
20
|
+
const subcommand = parsed._[0];
|
|
21
|
+
if (!subcommand || subcommand === 'list') {
|
|
22
|
+
try {
|
|
23
|
+
const { groups, selectedFields, totalCount } = await groups_fetchList(parsed);
|
|
24
|
+
if (groups.length === 0) {
|
|
25
|
+
console.log(chalk.gray('No groups found.'));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
table_display(groups, selectedFields, { title: { title: 'Groups', justification: 'center' }, pagination: totalCount !== undefined ? { shown: groups.length, total: totalCount } : undefined });
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
process.exitCode = 1;
|
|
32
|
+
console.error(chalk.red(`group error: ${e instanceof Error ? e.message : String(e)}`));
|
|
33
|
+
}
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
if (subcommand === 'search') {
|
|
37
|
+
const query = parsed._[1] ?? '';
|
|
38
|
+
await builtin_group([...args.filter((a) => a !== subcommand), `--search`, query]);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (subcommand === 'inspect') {
|
|
42
|
+
const fields = await groupFields_fetch();
|
|
43
|
+
if (fields && fields.length > 0) {
|
|
44
|
+
table_display(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Group fields', justification: 'center' } });
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
console.log(chalk.gray('No fields found for groups.'));
|
|
48
|
+
}
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
process.exitCode = 1;
|
|
52
|
+
console.log(chalk.red(`Unknown subcommand: ${subcommand}. Usage: groups <list|search|inspect>`));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../../src/builtins/res/group.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAc,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAmB,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,MAAM,GAAe,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,UAAU,GAAuB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnD,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAoB,MAAM,gBAAgB,CAAC,MAA+B,CAAC,CAAC;YACxH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACjF,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QACjM,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzF,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAC1F,OAAO;IACT,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAoB,MAAM,iBAAiB,EAAE,CAAC;QAC1D,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrI,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,UAAU,uCAAuC,CAAC,CAAC,CAAC;AACnG,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Pure argument parsing for the `pipeline run` subcommand.
|
|
3
|
+
*
|
|
4
|
+
* Dependency-free for easy unit testing.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Optional overrides parsed from `pipeline run` arguments.
|
|
10
|
+
*/
|
|
11
|
+
export interface PipelineRunOverrides {
|
|
12
|
+
computeOverride: string | undefined;
|
|
13
|
+
previousOverride: number | undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Parses `--compute <resource>` and `--previous <inst_id>` overrides from
|
|
17
|
+
* `pipeline run <name|id> ...` arguments (scanning from index 2).
|
|
18
|
+
*
|
|
19
|
+
* @param args - The full `pipeline run` argument list.
|
|
20
|
+
* @returns The parsed overrides.
|
|
21
|
+
*/
|
|
22
|
+
export declare function pipelineRunArgs_parse(args: string[]): PipelineRunOverrides;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Pure argument parsing for the `pipeline run` subcommand.
|
|
3
|
+
*
|
|
4
|
+
* Dependency-free for easy unit testing.
|
|
5
|
+
*
|
|
6
|
+
* @module
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Parses `--compute <resource>` and `--previous <inst_id>` overrides from
|
|
10
|
+
* `pipeline run <name|id> ...` arguments (scanning from index 2).
|
|
11
|
+
*
|
|
12
|
+
* @param args - The full `pipeline run` argument list.
|
|
13
|
+
* @returns The parsed overrides.
|
|
14
|
+
*/
|
|
15
|
+
export function pipelineRunArgs_parse(args) {
|
|
16
|
+
let computeOverride;
|
|
17
|
+
let previousOverride;
|
|
18
|
+
for (let i = 2; i < args.length; i++) {
|
|
19
|
+
if (args[i] === '--compute' && i + 1 < args.length) {
|
|
20
|
+
computeOverride = args[++i];
|
|
21
|
+
}
|
|
22
|
+
else if (args[i] === '--previous' && i + 1 < args.length) {
|
|
23
|
+
previousOverride = parseInt(args[++i], 10);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return { computeOverride, previousOverride };
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=pipeline.args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.args.js","sourceRoot":"","sources":["../../../src/builtins/res/pipeline.args.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAc;IAClD,IAAI,eAAmC,CAAC;IACxC,IAAI,gBAAoC,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACnD,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3D,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Builtin pipeline command.
|
|
3
|
+
*
|
|
4
|
+
* Manages registered ChRIS pipelines. Subcommands:
|
|
5
|
+
* - `list` — list all registered pipelines
|
|
6
|
+
* - `info` — show a pipeline's nodes and default parameters
|
|
7
|
+
* - `run` — instantiate a pipeline as a workflow on the current context node
|
|
8
|
+
* - `source` — display the pipeline's YAML source file
|
|
9
|
+
*
|
|
10
|
+
* Pipelines also appear as executables in `/bin` (colored distinctly from plugins)
|
|
11
|
+
* and can be invoked directly by name. `cat /bin/<name>` returns the YAML source.
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Manages ChRIS pipeline registration, inspection, and execution.
|
|
17
|
+
*
|
|
18
|
+
* @param args - Command arguments.
|
|
19
|
+
*/
|
|
20
|
+
export declare function builtin_pipeline(args: string[]): Promise<void>;
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Builtin pipeline command.
|
|
3
|
+
*
|
|
4
|
+
* Manages registered ChRIS pipelines. Subcommands:
|
|
5
|
+
* - `list` — list all registered pipelines
|
|
6
|
+
* - `info` — show a pipeline's nodes and default parameters
|
|
7
|
+
* - `run` — instantiate a pipeline as a workflow on the current context node
|
|
8
|
+
* - `source` — display the pipeline's YAML source file
|
|
9
|
+
*
|
|
10
|
+
* Pipelines also appear as executables in `/bin` (colored distinctly from plugins)
|
|
11
|
+
* and can be invoked directly by name. `cat /bin/<name>` returns the YAML source.
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
import chalk from 'chalk';
|
|
16
|
+
import { chrisContext, errorStack, pipeline_resolve, } from '@fnndsc/cumin';
|
|
17
|
+
import { pipelines_list, pipeline_run, pipeline_sourceGet, } from '@fnndsc/salsa';
|
|
18
|
+
import { pipelineFields_fetch } from '@fnndsc/chili/commands/pipeline/fields.js';
|
|
19
|
+
import { table_display } from '@fnndsc/chili/screen/screen.js';
|
|
20
|
+
import { args_checkHasHelpFlag, help_show } from '../help.js';
|
|
21
|
+
import { pipelineRunArgs_parse } from './pipeline.args.js';
|
|
22
|
+
import { session } from '../../session/index.js';
|
|
23
|
+
/**
|
|
24
|
+
* Renders a pipeline's node structure by fetching its piping definitions.
|
|
25
|
+
*
|
|
26
|
+
* @param pipelineId - Numeric pipeline ID.
|
|
27
|
+
*/
|
|
28
|
+
async function pipelineNodes_print(pipelineId) {
|
|
29
|
+
const client = await session.connection.client_get();
|
|
30
|
+
if (!client) {
|
|
31
|
+
console.error(chalk.red('pipeline info: not connected to ChRIS'));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const pipelineObj = await client.getPipeline(pipelineId);
|
|
36
|
+
if (!pipelineObj) {
|
|
37
|
+
console.error(chalk.red(`pipeline info: pipeline ${pipelineId} not found`));
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const pipingsResponse = await pipelineObj.getPluginPipings({ limit: 1000 });
|
|
41
|
+
const pipings = pipingsResponse.getItems();
|
|
42
|
+
console.log(chalk.bold.blue('\nNodes:\n'));
|
|
43
|
+
console.log(` ${chalk.bold('ID'.padEnd(6))}${chalk.bold('Title'.padEnd(30))}${chalk.bold('Plugin')}`);
|
|
44
|
+
console.log(` ${chalk.gray('─'.repeat(70))}`);
|
|
45
|
+
for (const piping of pipings) {
|
|
46
|
+
const d = piping.data;
|
|
47
|
+
const id = String(d.id ?? '').padEnd(6);
|
|
48
|
+
const title = String(d.title ?? '(untitled)').padEnd(30);
|
|
49
|
+
const plugin = String(d.plugin_name ?? '') + ' v' + String(d.plugin_version ?? '');
|
|
50
|
+
const previous = d.previous_id ? chalk.gray(` ← node ${d.previous_id}`) : chalk.gray(' (root)');
|
|
51
|
+
console.log(` ${chalk.cyan(id)}${chalk.white(title)}${chalk.yellow(plugin)}${previous}`);
|
|
52
|
+
}
|
|
53
|
+
console.log('');
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
57
|
+
console.error(chalk.red(`pipeline info: ${msg}`));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Handles `pipeline list [search]`.
|
|
62
|
+
*
|
|
63
|
+
* @param args - Command arguments.
|
|
64
|
+
*/
|
|
65
|
+
async function pipelineList_handle(args) {
|
|
66
|
+
const search = args[1];
|
|
67
|
+
const data = await pipelines_list(search);
|
|
68
|
+
if (!data || data.tableData.length === 0) {
|
|
69
|
+
console.log(chalk.yellow('No pipelines registered.'));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
console.log('');
|
|
73
|
+
console.log(` ${chalk.bold('ID'.padEnd(6))}${chalk.bold('Name'.padEnd(40))}${chalk.bold('Category'.padEnd(16))}${chalk.bold('Authors')}`);
|
|
74
|
+
console.log(` ${chalk.gray('─'.repeat(80))}`);
|
|
75
|
+
for (const row of data.tableData) {
|
|
76
|
+
const id = String(row.id ?? '').padEnd(6);
|
|
77
|
+
const name = String(row.name ?? '').padEnd(40);
|
|
78
|
+
const cat = String(row.category ?? '').padEnd(16);
|
|
79
|
+
const authors = String(row.authors ?? '');
|
|
80
|
+
console.log(` ${chalk.cyan(id)}${chalk.magenta(name)}${chalk.gray(cat)}${chalk.gray(authors)}`);
|
|
81
|
+
}
|
|
82
|
+
console.log('');
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Handles `pipeline info <name|id>`.
|
|
86
|
+
*
|
|
87
|
+
* @param args - Command arguments.
|
|
88
|
+
*/
|
|
89
|
+
async function pipelineInfo_handle(args) {
|
|
90
|
+
const nameOrId = args[1];
|
|
91
|
+
if (!nameOrId) {
|
|
92
|
+
console.error(chalk.red('Usage: pipeline info <name|id>'));
|
|
93
|
+
process.exitCode = 1;
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const result = await pipeline_resolve(nameOrId);
|
|
97
|
+
if (!result.ok) {
|
|
98
|
+
const err = errorStack.stack_pop();
|
|
99
|
+
console.error(chalk.red(`pipeline info: ${err?.message ?? 'not found'}`));
|
|
100
|
+
process.exitCode = 1;
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const p = result.value;
|
|
104
|
+
console.log('');
|
|
105
|
+
console.log(`${chalk.bold.magenta(p.name)} ${chalk.gray(`[id: ${p.id}]`)}`);
|
|
106
|
+
if (p.description)
|
|
107
|
+
console.log(chalk.white(` ${p.description}`));
|
|
108
|
+
if (p.authors)
|
|
109
|
+
console.log(chalk.gray(` Authors: ${p.authors}`));
|
|
110
|
+
if (p.category)
|
|
111
|
+
console.log(chalk.gray(` Category: ${p.category}`));
|
|
112
|
+
console.log(chalk.gray(` Locked: ${p.locked ? 'yes' : 'no'}`));
|
|
113
|
+
await pipelineNodes_print(p.id);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Resolves the "previous" plugin-instance id for `pipeline run`, from the
|
|
117
|
+
* explicit override or the current plugin context.
|
|
118
|
+
*
|
|
119
|
+
* @param previousOverride - Explicit `--previous` value, if any.
|
|
120
|
+
* @returns The instance id, or null if it could not be resolved (error printed).
|
|
121
|
+
*/
|
|
122
|
+
async function pipelineRun_previousInstId(previousOverride) {
|
|
123
|
+
if (previousOverride !== undefined)
|
|
124
|
+
return previousOverride;
|
|
125
|
+
const contextStr = await chrisContext.ChRISplugin_get();
|
|
126
|
+
if (!contextStr) {
|
|
127
|
+
console.error(chalk.red('pipeline run: no plugin instance in context.'));
|
|
128
|
+
console.error(chalk.gray(' Navigate to a feed node first, or use --previous <id>'));
|
|
129
|
+
process.exitCode = 1;
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
const previousInstId = parseInt(contextStr, 10);
|
|
133
|
+
if (isNaN(previousInstId)) {
|
|
134
|
+
console.error(chalk.red(`pipeline run: invalid context instance '${contextStr}'`));
|
|
135
|
+
process.exitCode = 1;
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
return previousInstId;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Handles `pipeline run <name|id> [--compute <r>] [--previous <id>]`.
|
|
142
|
+
*
|
|
143
|
+
* @param args - Command arguments.
|
|
144
|
+
*/
|
|
145
|
+
async function pipelineRun_handle(args) {
|
|
146
|
+
const nameOrId = args[1];
|
|
147
|
+
if (!nameOrId) {
|
|
148
|
+
console.error(chalk.red('Usage: pipeline run <name|id> [--compute <resource>] [--previous <inst_id>]'));
|
|
149
|
+
process.exitCode = 1;
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const { computeOverride, previousOverride } = pipelineRunArgs_parse(args);
|
|
153
|
+
const previousInstId = await pipelineRun_previousInstId(previousOverride);
|
|
154
|
+
if (previousInstId === null)
|
|
155
|
+
return;
|
|
156
|
+
const pipelineResult = await pipeline_resolve(nameOrId);
|
|
157
|
+
if (!pipelineResult.ok) {
|
|
158
|
+
const err = errorStack.stack_pop();
|
|
159
|
+
console.error(chalk.red(`pipeline run: ${err?.message ?? 'pipeline not found'}`));
|
|
160
|
+
process.exitCode = 1;
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
console.log(chalk.gray(`Running pipeline '${pipelineResult.value.name}' on instance ${previousInstId}...`));
|
|
164
|
+
const runResult = await pipeline_run(nameOrId, previousInstId, computeOverride);
|
|
165
|
+
if (!runResult.ok) {
|
|
166
|
+
const err = errorStack.stack_pop();
|
|
167
|
+
console.error(chalk.red(`pipeline run: ${err?.message ?? 'workflow creation failed'}`));
|
|
168
|
+
process.exitCode = 1;
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const { workflowId, pluginInstanceIds } = runResult.value;
|
|
172
|
+
console.log(chalk.green(`✓ Workflow ${workflowId} created — ${pluginInstanceIds.length} node(s) queued`));
|
|
173
|
+
console.log(chalk.gray(` Instance IDs: ${pluginInstanceIds.join(', ')}`));
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Handles `pipeline source <name|id>`.
|
|
177
|
+
*
|
|
178
|
+
* @param args - Command arguments.
|
|
179
|
+
*/
|
|
180
|
+
async function pipelineSource_handle(args) {
|
|
181
|
+
const nameOrId = args[1];
|
|
182
|
+
if (!nameOrId) {
|
|
183
|
+
console.error(chalk.red('Usage: pipeline source <name|id>'));
|
|
184
|
+
process.exitCode = 1;
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
const sourceResult = await pipeline_sourceGet(nameOrId);
|
|
188
|
+
if (!sourceResult.ok) {
|
|
189
|
+
const err = errorStack.stack_pop();
|
|
190
|
+
console.error(chalk.red(`pipeline source: ${err?.message ?? 'source not found'}`));
|
|
191
|
+
process.exitCode = 1;
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
console.log(sourceResult.value);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Handles `pipeline inspect`: lists available pipeline fields.
|
|
198
|
+
*/
|
|
199
|
+
async function pipelineInspect_handle() {
|
|
200
|
+
const fields = await pipelineFields_fetch();
|
|
201
|
+
if (fields && fields.length > 0) {
|
|
202
|
+
table_display(fields.map((f) => ({ field: f })), ['field'], { title: { title: 'Pipeline fields', justification: 'center' } });
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
console.log(chalk.gray('No fields found.'));
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Manages ChRIS pipeline registration, inspection, and execution.
|
|
210
|
+
*
|
|
211
|
+
* @param args - Command arguments.
|
|
212
|
+
*/
|
|
213
|
+
export async function builtin_pipeline(args) {
|
|
214
|
+
if (args_checkHasHelpFlag(args, 'pipeline')) {
|
|
215
|
+
help_show('pipeline');
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
const subcommand = args[0];
|
|
219
|
+
if (!subcommand) {
|
|
220
|
+
const current = await chrisContext.ChRISplugin_get();
|
|
221
|
+
console.log(chalk.gray('Usage: pipeline <list|info|run|source> [args]'));
|
|
222
|
+
if (current) {
|
|
223
|
+
console.log(chalk.gray(` Current context node: instance ${current}`));
|
|
224
|
+
}
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
switch (subcommand) {
|
|
228
|
+
case 'list':
|
|
229
|
+
await pipelineList_handle(args);
|
|
230
|
+
return;
|
|
231
|
+
case 'info':
|
|
232
|
+
await pipelineInfo_handle(args);
|
|
233
|
+
return;
|
|
234
|
+
case 'run':
|
|
235
|
+
await pipelineRun_handle(args);
|
|
236
|
+
return;
|
|
237
|
+
case 'source':
|
|
238
|
+
await pipelineSource_handle(args);
|
|
239
|
+
return;
|
|
240
|
+
case 'inspect':
|
|
241
|
+
await pipelineInspect_handle();
|
|
242
|
+
return;
|
|
243
|
+
case 'search':
|
|
244
|
+
await builtin_pipeline(['list', args[1] ?? '']);
|
|
245
|
+
return;
|
|
246
|
+
default:
|
|
247
|
+
console.error(chalk.red(`pipeline: unknown subcommand '${subcommand}'`));
|
|
248
|
+
console.log(chalk.gray(' Subcommands: list, search, inspect, info, run, source'));
|
|
249
|
+
process.exitCode = 1;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/builtins/res/pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ParsedArgs } from '../utils.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handles plugin commands.
|
|
4
|
+
*
|
|
5
|
+
* @param args - command arguments.
|
|
6
|
+
*/
|
|
7
|
+
export declare function builtin_plugin(args: string[]): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Interactive plugin add command with spinner and colored output.
|
|
10
|
+
*
|
|
11
|
+
* @param parsed - Parsed command arguments.
|
|
12
|
+
*/
|
|
13
|
+
export declare function plugin_addInteractive(parsed: ParsedArgs): Promise<void>;
|