@fnndsc/brasa 0.55.2 → 0.56.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/buildinfo.json +1 -1
- package/dist/builtins/berth/berth.d.ts +18 -0
- package/dist/builtins/berth/berth.js +471 -0
- package/dist/builtins/berth/berth.js.map +1 -0
- package/dist/builtins/berth/berthClose.d.ts +23 -0
- package/dist/builtins/berth/berthClose.js +467 -0
- package/dist/builtins/berth/berthClose.js.map +1 -0
- package/dist/builtins/berth/berthCube.d.ts +238 -0
- package/dist/builtins/berth/berthCube.js +366 -0
- package/dist/builtins/berth/berthCube.js.map +1 -0
- package/dist/builtins/berth/berthDisk.d.ts +13 -0
- package/dist/builtins/berth/berthDisk.js +34 -0
- package/dist/builtins/berth/berthDisk.js.map +1 -0
- package/dist/builtins/berth/berthProcesses.d.ts +32 -0
- package/dist/builtins/berth/berthProcesses.js +181 -0
- package/dist/builtins/berth/berthProcesses.js.map +1 -0
- package/dist/builtins/berth/berthRecord.d.ts +210 -0
- package/dist/builtins/berth/berthRecord.js +130 -0
- package/dist/builtins/berth/berthRecord.js.map +1 -0
- package/dist/builtins/berth/berthState.d.ts +139 -0
- package/dist/builtins/berth/berthState.js +194 -0
- package/dist/builtins/berth/berthState.js.map +1 -0
- package/dist/builtins/berth/berthWords.d.ts +87 -0
- package/dist/builtins/berth/berthWords.js +78 -0
- package/dist/builtins/berth/berthWords.js.map +1 -0
- package/dist/builtins/helpSections.js +59 -1
- package/dist/builtins/helpSections.js.map +1 -1
- package/dist/chris/chrisCommands.js +6 -0
- package/dist/chris/chrisCommands.js.map +1 -1
- package/dist/chris/files.js +6 -0
- package/dist/chris/files.js.map +1 -1
- package/dist/chris/help.js +50 -0
- package/dist/chris/help.js.map +1 -1
- package/dist/notes.json +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/** The environment variable naming a berth's anchors folder. */
|
|
2
|
+
export declare const BERTH_ANCHORS_ENV: string;
|
|
3
|
+
/** The environment variable naming a berth's outgoing folder. */
|
|
4
|
+
export declare const BERTH_OUTGOING_ENV: string;
|
|
5
|
+
/** The state file's name, inside the anchors folder. */
|
|
6
|
+
export declare const BERTH_STATE_FILE: string;
|
|
7
|
+
/**
|
|
8
|
+
* The two places of a berth.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const places: BerthPlaces = { anchors: '/anchors', outgoing: '/outgoing' };
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export interface BerthPlaces {
|
|
16
|
+
/** The folder each anchor is downloaded into, one folder per anchor. */
|
|
17
|
+
readonly anchors: string;
|
|
18
|
+
/** The folder the person's work is returned from. */
|
|
19
|
+
readonly outgoing: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* One file an anchor downloaded.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* const file: AnchoredFile = { name: 'anat/t1.nii', size: 1024 };
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export interface AnchoredFile {
|
|
30
|
+
/** Its name relative to the anchor's folder, with `/` between parts. */
|
|
31
|
+
readonly name: string;
|
|
32
|
+
/** Its size in bytes, as ChRIS gave it. */
|
|
33
|
+
readonly size: number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* One anchor: a ChRIS path downloaded into the berth.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* const anchor: BerthAnchor = {
|
|
41
|
+
* name: 'sub-01', path: '/home/alice/feeds/feed_5/pl-dircopy_7/data/sub-01',
|
|
42
|
+
* node: 7, feed: 5, files: [{ name: 't1.nii', size: 1024 }], anchoredAt: '2026-11-13T10:00:00.000Z',
|
|
43
|
+
* };
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export interface BerthAnchor {
|
|
47
|
+
/** Its name: the folder under the anchors place. */
|
|
48
|
+
readonly name: string;
|
|
49
|
+
/** The ChRIS path it was downloaded from, absolute. */
|
|
50
|
+
readonly path: string;
|
|
51
|
+
/** The plugin instance the path runs through, under the person's own feeds; null anywhere else. */
|
|
52
|
+
readonly node: number | null;
|
|
53
|
+
/** The feed of that node; null when there is no node. */
|
|
54
|
+
readonly feed: number | null;
|
|
55
|
+
/** Every file downloaded, for the close's check of a changed input. */
|
|
56
|
+
readonly files: readonly AnchoredFile[];
|
|
57
|
+
/** When it was downloaded. */
|
|
58
|
+
readonly anchoredAt: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* A berth's state, as the state file holds it.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```ts
|
|
65
|
+
* const state: BerthState = { version: 1, anchors: [], lastClosedAt: null };
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export interface BerthState {
|
|
69
|
+
/** The file's format version. */
|
|
70
|
+
readonly version: number;
|
|
71
|
+
/** The anchors, in the order they were made. */
|
|
72
|
+
readonly anchors: readonly BerthAnchor[];
|
|
73
|
+
/** When the berth last closed; null when it never has. */
|
|
74
|
+
readonly lastClosedAt: string | null;
|
|
75
|
+
}
|
|
76
|
+
/** A state file that cannot be read as a berth's state. */
|
|
77
|
+
export declare class BerthStateError extends Error {
|
|
78
|
+
/**
|
|
79
|
+
* @param file - The state file.
|
|
80
|
+
* @param why - What is wrong with it.
|
|
81
|
+
*/
|
|
82
|
+
constructor(file: string, why: string);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The places of the berth this session runs in.
|
|
86
|
+
*
|
|
87
|
+
* @param env - The environment to read; the process's by default.
|
|
88
|
+
* @returns Both places, or null when either is unset (the session runs on a host).
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* berthPlaces_read({ MISE_BERTH_ANCHORS: '/anchors', MISE_BERTH_OUTGOING: '/outgoing' }); // { anchors: '/anchors', outgoing: '/outgoing' }
|
|
93
|
+
* berthPlaces_read({}); // null
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare function berthPlaces_read(env?: NodeJS.ProcessEnv): BerthPlaces | null;
|
|
97
|
+
/**
|
|
98
|
+
* Reads a berth's state file.
|
|
99
|
+
*
|
|
100
|
+
* @param anchorsDir - The berth's anchors folder.
|
|
101
|
+
* @returns The state; the empty state when there is no file yet.
|
|
102
|
+
* @throws {BerthStateError} When the file is there but is not a berth's state.
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```ts
|
|
106
|
+
* const state: BerthState = berthState_read('/anchors');
|
|
107
|
+
* state.anchors.map((anchor: BerthAnchor): string => anchor.name); // ['sub-01']
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare function berthState_read(anchorsDir: string): BerthState;
|
|
111
|
+
/**
|
|
112
|
+
* Writes a berth's state file whole: to a temporary file beside it, then
|
|
113
|
+
* renamed over it, so a reader sees the old state or the new and never part.
|
|
114
|
+
*
|
|
115
|
+
* @param anchorsDir - The berth's anchors folder.
|
|
116
|
+
* @param state - The state to write.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* berthState_write('/anchors', { version: 1, anchors: [], lastClosedAt: '2026-11-13T12:00:00.000Z' });
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export declare function berthState_write(anchorsDir: string, state: BerthState): void;
|
|
124
|
+
/**
|
|
125
|
+
* Reads the state, changes it and writes it, with nothing between the read
|
|
126
|
+
* and the write: the steps are synchronous, so two lines of one session that
|
|
127
|
+
* change the state never lose each other's change.
|
|
128
|
+
*
|
|
129
|
+
* @param anchorsDir - The berth's anchors folder.
|
|
130
|
+
* @param change - The change: the state as read, to the state to write.
|
|
131
|
+
* @returns The state written.
|
|
132
|
+
* @throws {BerthStateError} When the file there is not a berth's state.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* berthState_update('/anchors', (state: BerthState): BerthState => ({ ...state, anchors: [] }));
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export declare function berthState_update(anchorsDir: string, change: (state: BerthState) => BerthState): BerthState;
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file A berth's places and its state file: where anchors and outgoing work
|
|
3
|
+
* live, and what has been anchored there.
|
|
4
|
+
*
|
|
5
|
+
* A berth container names its two places in the environment:
|
|
6
|
+
* `MISE_BERTH_ANCHORS` (where each anchor is downloaded, `/anchors`) and
|
|
7
|
+
* `MISE_BERTH_OUTGOING` (the person's work to return, `/outgoing`). A session
|
|
8
|
+
* without them runs on a host, not in a berth. The state is one JSON file in
|
|
9
|
+
* the anchors place, `.berth.json`: every anchor with its ChRIS path, its node
|
|
10
|
+
* and feed (or none), the files downloaded with their sizes, when it was
|
|
11
|
+
* anchored, and when the berth last closed. It is written whole, to a
|
|
12
|
+
* temporary file renamed over the old one, so a reader never sees half of it.
|
|
13
|
+
*
|
|
14
|
+
* Key components:
|
|
15
|
+
* - BerthPlaces: the anchors and outgoing folders of a berth.
|
|
16
|
+
* - BerthState, BerthAnchor, AnchoredFile: the state file's shape.
|
|
17
|
+
* - berthPlaces_read: the places from the environment, or null on a host.
|
|
18
|
+
* - berthState_read / berthState_write: read and write the state file.
|
|
19
|
+
* - berthState_update: read, change and write the state in one step.
|
|
20
|
+
*
|
|
21
|
+
* Typical usage:
|
|
22
|
+
* ```ts
|
|
23
|
+
* const places: BerthPlaces | null = berthPlaces_read();
|
|
24
|
+
* if (places !== null) {
|
|
25
|
+
* const state: BerthState = berthState_read(places.anchors);
|
|
26
|
+
* berthState_update(places.anchors, (now: BerthState): BerthState => ({ ...now, lastClosedAt: new Date().toISOString() }));
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* Dependencies: Node.js built-ins only. Times are ISO 8601 strings.
|
|
31
|
+
*
|
|
32
|
+
* @module
|
|
33
|
+
*/
|
|
34
|
+
import { existsSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
|
|
35
|
+
import { join } from 'node:path';
|
|
36
|
+
/** The environment variable naming a berth's anchors folder. */
|
|
37
|
+
export const BERTH_ANCHORS_ENV = 'MISE_BERTH_ANCHORS';
|
|
38
|
+
/** The environment variable naming a berth's outgoing folder. */
|
|
39
|
+
export const BERTH_OUTGOING_ENV = 'MISE_BERTH_OUTGOING';
|
|
40
|
+
/** The state file's name, inside the anchors folder. */
|
|
41
|
+
export const BERTH_STATE_FILE = '.berth.json';
|
|
42
|
+
/** The state file's format version. */
|
|
43
|
+
const BERTH_STATE_VERSION = 1;
|
|
44
|
+
/** A state file that cannot be read as a berth's state. */
|
|
45
|
+
export class BerthStateError extends Error {
|
|
46
|
+
/**
|
|
47
|
+
* @param file - The state file.
|
|
48
|
+
* @param why - What is wrong with it.
|
|
49
|
+
*/
|
|
50
|
+
constructor(file, why) {
|
|
51
|
+
super(`${file}: ${why}`);
|
|
52
|
+
this.name = 'BerthStateError';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* The places of the berth this session runs in.
|
|
57
|
+
*
|
|
58
|
+
* @param env - The environment to read; the process's by default.
|
|
59
|
+
* @returns Both places, or null when either is unset (the session runs on a host).
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* berthPlaces_read({ MISE_BERTH_ANCHORS: '/anchors', MISE_BERTH_OUTGOING: '/outgoing' }); // { anchors: '/anchors', outgoing: '/outgoing' }
|
|
64
|
+
* berthPlaces_read({}); // null
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export function berthPlaces_read(env = process.env) {
|
|
68
|
+
const anchors = env[BERTH_ANCHORS_ENV];
|
|
69
|
+
const outgoing = env[BERTH_OUTGOING_ENV];
|
|
70
|
+
if (anchors === undefined || anchors === '' || outgoing === undefined || outgoing === '')
|
|
71
|
+
return null;
|
|
72
|
+
return { anchors, outgoing };
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* A state with nothing in it: no anchor, never closed.
|
|
76
|
+
*
|
|
77
|
+
* @returns The empty state.
|
|
78
|
+
*/
|
|
79
|
+
function berthState_empty() {
|
|
80
|
+
return { version: BERTH_STATE_VERSION, anchors: [], lastClosedAt: null };
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Reads one anchored file from the state file's JSON.
|
|
84
|
+
*
|
|
85
|
+
* @param raw - The parsed value.
|
|
86
|
+
* @param file - The state file, for the error.
|
|
87
|
+
* @returns The file.
|
|
88
|
+
* @throws {BerthStateError} When it is not a file entry.
|
|
89
|
+
*/
|
|
90
|
+
function anchoredFile_parse(raw, file) {
|
|
91
|
+
const entry = (typeof raw === 'object' && raw !== null ? raw : {});
|
|
92
|
+
if (typeof entry['name'] !== 'string' || typeof entry['size'] !== 'number')
|
|
93
|
+
throw new BerthStateError(file, 'a file entry wants a name and a size');
|
|
94
|
+
return { name: entry['name'], size: entry['size'] };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Reads one anchor from the state file's JSON.
|
|
98
|
+
*
|
|
99
|
+
* @param raw - The parsed value.
|
|
100
|
+
* @param file - The state file, for the error.
|
|
101
|
+
* @returns The anchor.
|
|
102
|
+
* @throws {BerthStateError} When it is not an anchor entry.
|
|
103
|
+
*/
|
|
104
|
+
function berthAnchor_parse(raw, file) {
|
|
105
|
+
const entry = (typeof raw === 'object' && raw !== null ? raw : {});
|
|
106
|
+
const node = entry['node'];
|
|
107
|
+
const feed = entry['feed'];
|
|
108
|
+
if (typeof entry['name'] !== 'string' || typeof entry['path'] !== 'string' || typeof entry['anchoredAt'] !== 'string'
|
|
109
|
+
|| !(node === null || typeof node === 'number') || !(feed === null || typeof feed === 'number') || !Array.isArray(entry['files'])) {
|
|
110
|
+
throw new BerthStateError(file, 'an anchor wants a name, a path, a node, a feed, files and anchoredAt');
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
name: entry['name'],
|
|
114
|
+
path: entry['path'],
|
|
115
|
+
node,
|
|
116
|
+
feed,
|
|
117
|
+
files: entry['files'].map((one) => anchoredFile_parse(one, file)),
|
|
118
|
+
anchoredAt: entry['anchoredAt'],
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Reads a berth's state file.
|
|
123
|
+
*
|
|
124
|
+
* @param anchorsDir - The berth's anchors folder.
|
|
125
|
+
* @returns The state; the empty state when there is no file yet.
|
|
126
|
+
* @throws {BerthStateError} When the file is there but is not a berth's state.
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```ts
|
|
130
|
+
* const state: BerthState = berthState_read('/anchors');
|
|
131
|
+
* state.anchors.map((anchor: BerthAnchor): string => anchor.name); // ['sub-01']
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
export function berthState_read(anchorsDir) {
|
|
135
|
+
const file = join(anchorsDir, BERTH_STATE_FILE);
|
|
136
|
+
if (!existsSync(file))
|
|
137
|
+
return berthState_empty();
|
|
138
|
+
let parsed;
|
|
139
|
+
try {
|
|
140
|
+
parsed = JSON.parse(readFileSync(file, 'utf8'));
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
throw new BerthStateError(file, error instanceof Error ? error.message : String(error));
|
|
144
|
+
}
|
|
145
|
+
const raw = (typeof parsed === 'object' && parsed !== null ? parsed : {});
|
|
146
|
+
const closed = raw['lastClosedAt'];
|
|
147
|
+
if (!Array.isArray(raw['anchors']) || !(closed === null || closed === undefined || typeof closed === 'string')) {
|
|
148
|
+
throw new BerthStateError(file, 'not a berth state (anchors, lastClosedAt)');
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
version: typeof raw['version'] === 'number' ? raw['version'] : BERTH_STATE_VERSION,
|
|
152
|
+
anchors: raw['anchors'].map((one) => berthAnchor_parse(one, file)),
|
|
153
|
+
lastClosedAt: closed ?? null,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Writes a berth's state file whole: to a temporary file beside it, then
|
|
158
|
+
* renamed over it, so a reader sees the old state or the new and never part.
|
|
159
|
+
*
|
|
160
|
+
* @param anchorsDir - The berth's anchors folder.
|
|
161
|
+
* @param state - The state to write.
|
|
162
|
+
*
|
|
163
|
+
* @example
|
|
164
|
+
* ```ts
|
|
165
|
+
* berthState_write('/anchors', { version: 1, anchors: [], lastClosedAt: '2026-11-13T12:00:00.000Z' });
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
export function berthState_write(anchorsDir, state) {
|
|
169
|
+
const file = join(anchorsDir, BERTH_STATE_FILE);
|
|
170
|
+
const temporary = `${file}.${process.pid}.tmp`;
|
|
171
|
+
writeFileSync(temporary, `${JSON.stringify({ ...state, version: BERTH_STATE_VERSION }, null, 2)}\n`, { mode: 0o644 });
|
|
172
|
+
renameSync(temporary, file);
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Reads the state, changes it and writes it, with nothing between the read
|
|
176
|
+
* and the write: the steps are synchronous, so two lines of one session that
|
|
177
|
+
* change the state never lose each other's change.
|
|
178
|
+
*
|
|
179
|
+
* @param anchorsDir - The berth's anchors folder.
|
|
180
|
+
* @param change - The change: the state as read, to the state to write.
|
|
181
|
+
* @returns The state written.
|
|
182
|
+
* @throws {BerthStateError} When the file there is not a berth's state.
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```ts
|
|
186
|
+
* berthState_update('/anchors', (state: BerthState): BerthState => ({ ...state, anchors: [] }));
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export function berthState_update(anchorsDir, change) {
|
|
190
|
+
const next = change(berthState_read(anchorsDir));
|
|
191
|
+
berthState_write(anchorsDir, next);
|
|
192
|
+
return next;
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=berthState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"berthState.js","sourceRoot":"","sources":["../../../src/builtins/berth/berthState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file The words the `berth` subcommands share: a refusal in the verb's
|
|
3
|
+
* tone, a count with its noun, the bytes of some files, and an anchor's node
|
|
4
|
+
* as the listing names it.
|
|
5
|
+
*
|
|
6
|
+
* Key components:
|
|
7
|
+
* - BerthRefusal: a refusal, said after `berth: ` with an exit status of 1.
|
|
8
|
+
* - count_say: `1 file`, `3 files`.
|
|
9
|
+
* - columns_render: rows laid out in columns.
|
|
10
|
+
* - bytes_sum: the sum of some files' sizes.
|
|
11
|
+
* - anchorNode_show: an anchor's node by its folder name, or `none`.
|
|
12
|
+
*
|
|
13
|
+
* Typical usage:
|
|
14
|
+
* ```ts
|
|
15
|
+
* throw new BerthRefusal(`close: ${count_say(2, 'anchor')} have no node`);
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Dependencies: none.
|
|
19
|
+
*
|
|
20
|
+
* @module
|
|
21
|
+
*/
|
|
22
|
+
import type { BerthAnchor } from './berthState.js';
|
|
23
|
+
/**
|
|
24
|
+
* A refusal: the verb's words for it, and an exit status of 1.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* throw new BerthRefusal('drop: no anchor named sub-01');
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare class BerthRefusal extends Error {
|
|
32
|
+
/**
|
|
33
|
+
* @param message - The words after `berth: `.
|
|
34
|
+
*/
|
|
35
|
+
constructor(message: string);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* A count with its noun, `1 file`, `3 files`.
|
|
39
|
+
*
|
|
40
|
+
* @param count - The count.
|
|
41
|
+
* @param noun - The noun, singular.
|
|
42
|
+
* @returns The words.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* count_say(3, 'file'); // '3 files'
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function count_say(count: number, noun: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* The sum of the sizes of some files.
|
|
52
|
+
*
|
|
53
|
+
* @param files - The files.
|
|
54
|
+
* @returns Their bytes.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* bytes_sum([{ size: 4 }, { size: 6 }]); // 10
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare function bytes_sum(files: ReadonlyArray<{
|
|
62
|
+
readonly size: number;
|
|
63
|
+
}>): number;
|
|
64
|
+
/**
|
|
65
|
+
* Lays rows out in columns, each as wide as its widest cell.
|
|
66
|
+
*
|
|
67
|
+
* @param rows - The rows, the header first.
|
|
68
|
+
* @returns The lines.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* columns_render([['PID', 'COMMAND'], ['412', 'vim']]); // ['PID COMMAND', '412 vim']
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export declare function columns_render(rows: readonly (readonly string[])[]): string[];
|
|
76
|
+
/**
|
|
77
|
+
* The node of an anchor by its folder name, read from its path.
|
|
78
|
+
*
|
|
79
|
+
* @param anchor - The anchor.
|
|
80
|
+
* @returns `pl-fshack_41`, the id when the path names no such folder, or `none`.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* anchorNode_show({ name: 'sub-01', path: '/home/alice/feeds/feed_5/pl-fshack_41/data/sub-01', node: 41, feed: 5, files: [], anchoredAt: '' }); // 'pl-fshack_41'
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function anchorNode_show(anchor: BerthAnchor): string;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A refusal: the verb's words for it, and an exit status of 1.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* throw new BerthRefusal('drop: no anchor named sub-01');
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
9
|
+
export class BerthRefusal extends Error {
|
|
10
|
+
/**
|
|
11
|
+
* @param message - The words after `berth: `.
|
|
12
|
+
*/
|
|
13
|
+
constructor(message) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.name = 'BerthRefusal';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A count with its noun, `1 file`, `3 files`.
|
|
20
|
+
*
|
|
21
|
+
* @param count - The count.
|
|
22
|
+
* @param noun - The noun, singular.
|
|
23
|
+
* @returns The words.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* count_say(3, 'file'); // '3 files'
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export function count_say(count, noun) {
|
|
31
|
+
return `${count} ${noun}${count === 1 ? '' : 's'}`;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The sum of the sizes of some files.
|
|
35
|
+
*
|
|
36
|
+
* @param files - The files.
|
|
37
|
+
* @returns Their bytes.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```ts
|
|
41
|
+
* bytes_sum([{ size: 4 }, { size: 6 }]); // 10
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export function bytes_sum(files) {
|
|
45
|
+
return files.reduce((total, file) => total + file.size, 0);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Lays rows out in columns, each as wide as its widest cell.
|
|
49
|
+
*
|
|
50
|
+
* @param rows - The rows, the header first.
|
|
51
|
+
* @returns The lines.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```ts
|
|
55
|
+
* columns_render([['PID', 'COMMAND'], ['412', 'vim']]); // ['PID COMMAND', '412 vim']
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export function columns_render(rows) {
|
|
59
|
+
const widths = (rows[0] ?? []).map((_cell, at) => Math.max(...rows.map((row) => (row[at] ?? '').length)));
|
|
60
|
+
return rows.map((row) => row.map((cell, at) => (at === row.length - 1 ? cell : cell.padEnd(widths[at] ?? 0))).join(' ').trimEnd());
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The node of an anchor by its folder name, read from its path.
|
|
64
|
+
*
|
|
65
|
+
* @param anchor - The anchor.
|
|
66
|
+
* @returns `pl-fshack_41`, the id when the path names no such folder, or `none`.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* anchorNode_show({ name: 'sub-01', path: '/home/alice/feeds/feed_5/pl-fshack_41/data/sub-01', node: 41, feed: 5, files: [], anchoredAt: '' }); // 'pl-fshack_41'
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export function anchorNode_show(anchor) {
|
|
74
|
+
if (anchor.node === null)
|
|
75
|
+
return 'none';
|
|
76
|
+
return anchor.path.split('/').reverse().find((segment) => segment.endsWith(`_${anchor.node}`)) ?? String(anchor.node);
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=berthWords.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"berthWords.js","sourceRoot":"","sources":["../../../src/builtins/berth/berthWords.ts"],"names":[],"mappings":"AAuBA;;;;;;;GAOG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC;;OAEG;IACH,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,IAAY;IACnD,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACrD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,SAAS,CAAC,KAA+C;IACvE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,IAA+B,EAAU,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACxG,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,IAAoC;IACjE,MAAM,MAAM,GAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAU,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAsB,EAAU,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvK,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAsB,EAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAU,EAAU,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACzL,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IACxC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzI,CAAC"}
|
|
@@ -20,7 +20,7 @@ export const HELP_SECTIONS = [
|
|
|
20
20
|
{ name: 'Connection', blurb: 'Who you are, which CUBE you are on, and where the session stands.', examples: ['connect', 'whoami', 'context'] },
|
|
21
21
|
{ name: 'Monitoring', blurb: 'Live jobs as a filesystem, and jumping to one by number.', examples: ['proc'] },
|
|
22
22
|
{ name: 'Imaging', blurb: 'DICOM tags and image viewing.', examples: ['dcm', 'image'] },
|
|
23
|
-
{ name: 'Workflows', blurb: 'Gather a cohort, record what you do as a manifest, and replay it.', examples: ['gather', 'record', 'play', 'expect'] },
|
|
23
|
+
{ name: 'Workflows', blurb: 'Gather a cohort, anchor ChRIS paths in a berth, record what you do as a manifest, and replay it.', examples: ['gather', 'berth', 'record', 'play', 'expect'] },
|
|
24
24
|
{ name: 'Resources', blurb: 'ChRIS resources one at a time or as lists: feeds, plugins, pipelines, jobs, tags, groups, compute, store.', examples: ['feed', 'feeds', 'plugins', 'jobs'] },
|
|
25
25
|
{ name: 'PACS', blurb: "Ask a PACS for a patient's studies and series, narrow the answer, and pull it into ChRIS.", examples: ['query', 'pull', 'pacs'] },
|
|
26
26
|
{ name: 'Admin', blurb: 'Administrative acts that need elevated rights.', examples: ['sudo', 'user'] },
|
|
@@ -151,6 +151,64 @@ export const SHELL_TOPICS = [
|
|
|
151
151
|
' whatif pl-freesurfer ~/uploads/t1.nii as sub-01',
|
|
152
152
|
],
|
|
153
153
|
},
|
|
154
|
+
{
|
|
155
|
+
name: 'anchors',
|
|
156
|
+
summary: 'berth anchor <path> [name] and berth close: ChRIS paths downloaded into a berth, and the work returned as one node',
|
|
157
|
+
page: [
|
|
158
|
+
'A berth works on its anchors: ChRIS paths downloaded into the berth\'s',
|
|
159
|
+
'anchors folder, one folder each, through the CUBE API with your token.',
|
|
160
|
+
'Any path you can read anchors: a node, a folder or file inside its',
|
|
161
|
+
'output, an upload, a PACS series, /PUBLIC, /SHARED. Several stand at once.',
|
|
162
|
+
' berth anchor ~/feeds/feed_5/pl-dircopy_7/pl-fshack_41/data/sub-01',
|
|
163
|
+
' berth anchor ~/uploads/weights',
|
|
164
|
+
'',
|
|
165
|
+
'The name is the path\'s last part; two paths that end alike need one:',
|
|
166
|
+
' berth anchor /PUBLIC/atlas/weights atlas-weights',
|
|
167
|
+
'',
|
|
168
|
+
'The node is read from the path alone. Under your own ~/feeds it is the',
|
|
169
|
+
'plugin instance the path runs through: a path inside a node anchors',
|
|
170
|
+
'that part only, and a path naming the node anchors its data. Anywhere',
|
|
171
|
+
'else (uploads, PACS, /PUBLIC, /SHARED, another person\'s home) there is',
|
|
172
|
+
'none, whatever feed the data sits in.',
|
|
173
|
+
'',
|
|
174
|
+
'What refuses, before anything is downloaded:',
|
|
175
|
+
' a node that is not finishedSuccessfully, with its status',
|
|
176
|
+
' a path in your feeds but at no node (…/feeds/feed_N)',
|
|
177
|
+
' a name another path holds, or an anchor that stands (--refresh)',
|
|
178
|
+
' a size larger than the anchors folder has free: anchor a folder',
|
|
179
|
+
' inside it',
|
|
180
|
+
'',
|
|
181
|
+
'The files, the bytes and the free space are said first; above 10 GB',
|
|
182
|
+
'the anchor asks, and --yes answers. The files are downloaded without',
|
|
183
|
+
'write permission, which stops an accident, not an intent, and the',
|
|
184
|
+
'berth keeps a list of them, names and sizes, for its close.',
|
|
185
|
+
'',
|
|
186
|
+
'berth close returns the outgoing folder as one node. It writes',
|
|
187
|
+
'berth.json there (you, every anchor and what it downloaded, the berth,',
|
|
188
|
+
'the git commit you work in, the image, the time, where the node goes),',
|
|
189
|
+
'uploads the folder to ~/berth/<uuid>/, and runs pl-dsdircopy over it,',
|
|
190
|
+
'titled berth work unless --title says otherwise. Where it goes follows',
|
|
191
|
+
'from the anchors:',
|
|
192
|
+
' every anchor under one node a child of that node',
|
|
193
|
+
' no anchor under a node a new feed: pl-dircopy over every',
|
|
194
|
+
' anchored path, the work its child',
|
|
195
|
+
' no anchor at all a new feed: pl-dircopy over the work',
|
|
196
|
+
' two nodes, or node and none refused: --infeed <anchor> makes it',
|
|
197
|
+
' a child of that anchor\'s node,',
|
|
198
|
+
' --newfeed a new feed over every anchor',
|
|
199
|
+
'--name names a new feed. When your processes still run in the berth',
|
|
200
|
+
'the close lists them, with what they hold open in the outgoing folder,',
|
|
201
|
+
'and asks; --force answers. An anchor with no node whose files changed',
|
|
202
|
+
'in ChRIS since it was anchored is said and recorded, not refused. A',
|
|
203
|
+
'node that cannot be made leaves the upload in ~/berth/<uuid>/ and says',
|
|
204
|
+
'uploaded, not attached. A close removes nothing; a second close is a',
|
|
205
|
+
'second node.',
|
|
206
|
+
'',
|
|
207
|
+
'berth lists the anchors; berth drop <name> removes one, berth clear',
|
|
208
|
+
'removes all of them and empties the outgoing folder, asking first when',
|
|
209
|
+
'it holds files not yet closed. ChRIS still holds whatever is removed.',
|
|
210
|
+
],
|
|
211
|
+
},
|
|
154
212
|
{ name: 'grep', summary: 'filter text, or a numbered listing keeping its handles' },
|
|
155
213
|
{ name: 'command', summary: 'run the system program, not the builtin' },
|
|
156
214
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpSections.js","sourceRoot":"","sources":["../../src/builtins/helpSections.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpSections.js","sourceRoot":"","sources":["../../src/builtins/helpSections.ts"],"names":[],"mappings":"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"}
|