@fnndsc/brasa 0.57.2 → 0.57.3
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/fs/archive.js +23 -15
- package/dist/builtins/fs/archive.js.map +1 -1
- package/dist/notes.json +1 -1
- package/package.json +2 -2
package/dist/buildinfo.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"hash":"
|
|
1
|
+
{"hash":"f50932"}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
* @module
|
|
19
19
|
*/
|
|
20
20
|
import chalk from 'chalk';
|
|
21
|
-
import { feed_create, files_listRecursive, job_statusFetch, feed_delete, pipeline_readiness, pipeline_run, } from '@fnndsc/salsa';
|
|
21
|
+
import { feed_create, files_listRecursive, job_statusFetch, job_outputPathFetch, feed_delete, pipeline_readiness, pipeline_run, } from '@fnndsc/salsa';
|
|
22
22
|
import { sink_get } from '../../core/sink.js';
|
|
23
23
|
import { vfs } from '../../lib/vfs/vfs.js';
|
|
24
24
|
import { errorStack } from '@fnndsc/fond';
|
|
@@ -124,7 +124,7 @@ export async function directory_archive(directory) {
|
|
|
124
124
|
await feed_discard(feed.id, name);
|
|
125
125
|
return null;
|
|
126
126
|
}
|
|
127
|
-
return archiveOutput_find(
|
|
127
|
+
return archiveOutput_find(archiveInstanceId, name);
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
130
130
|
* Removes a feed created for an archive run that then failed.
|
|
@@ -145,29 +145,37 @@ async function feed_discard(feedId, name) {
|
|
|
145
145
|
/**
|
|
146
146
|
* Locates the file an archive run produced.
|
|
147
147
|
*
|
|
148
|
-
* The output
|
|
149
|
-
*
|
|
150
|
-
*
|
|
148
|
+
* The output folder is CUBE's answer (the archive job's `output_path`), not a
|
|
149
|
+
* path built from the feed's and the job's ids: the store keeps a feed under
|
|
150
|
+
* its owner's home (`home/<user>/feeds/feed_N/…`), so a built `feeds/feed_N/…`
|
|
151
|
+
* names nothing. The folder is then listed rather than the archive's name
|
|
152
|
+
* reconstructed: that name is the pipeline's business, and a client that
|
|
153
|
+
* guesses it breaks the day the pipeline changes.
|
|
151
154
|
*
|
|
152
|
-
* @param feedId - The feed the run created.
|
|
153
|
-
* @param dircopyId - The `pl-dircopy` instance that rooted it.
|
|
154
155
|
* @param archiveInstanceId - The instance that produced the archive.
|
|
155
156
|
* @param name - The directory's name, for the error message.
|
|
156
|
-
* @returns The archive, or null when
|
|
157
|
+
* @returns The archive, or null when CUBE names no output folder or it held no file.
|
|
157
158
|
*/
|
|
158
|
-
async function archiveOutput_find(
|
|
159
|
-
const outputRoot =
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
159
|
+
async function archiveOutput_find(archiveInstanceId, name) {
|
|
160
|
+
const outputRoot = await job_outputPathFetch(archiveInstanceId);
|
|
161
|
+
if (!outputRoot.ok) {
|
|
162
|
+
errorStack.stack_push('error', `The archive of ${name} has no output folder CUBE can name.`);
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
// store-path: the archive job's output folder, as CUBE records it (its output_path).
|
|
166
|
+
const items = await files_listRecursive(outputRoot.value);
|
|
167
|
+
const produced = items.filter((item) => item.type !== 'dir');
|
|
163
168
|
if (produced.length === 0) {
|
|
164
169
|
errorStack.stack_push('error', `The archive of ${name} produced no file.`);
|
|
165
170
|
return null;
|
|
166
171
|
}
|
|
167
172
|
const archive = produced[0];
|
|
168
|
-
|
|
173
|
+
// A listing names a file from the store's root without the leading slash,
|
|
174
|
+
// and a session reads a path without one from where it stands.
|
|
175
|
+
const archivePath = archive.path.startsWith('/') ? archive.path : `/${archive.path}`;
|
|
176
|
+
const filename = archivePath.split('/').filter(Boolean).pop() ?? `${name}.zip`;
|
|
169
177
|
return {
|
|
170
|
-
path:
|
|
178
|
+
path: archivePath,
|
|
171
179
|
filename,
|
|
172
180
|
...(typeof archive.size === 'number' ? { size: archive.size } : {}),
|
|
173
181
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/builtins/fs/archive.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/builtins/fs/archive.ts"],"names":[],"mappings":"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"}
|