Skip to content

Commit 6fc4005

Browse files
committed
build: inject flow name and version into the packaged flow.toml file
1 parent 5569334 commit 6fc4005

1 file changed

Lines changed: 26 additions & 2 deletions

File tree

scripts/publish-images.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const { execSync } = require("child_process");
22
const fs = require("fs");
3+
const os = require("os");
34
const path = require("path");
45

56
const flowFilename = "flow.toml";
@@ -18,9 +19,30 @@ const projects = JSON.parse(
1819
execSync(`npm pkg get ${workspaces} name version module`),
1920
);
2021

22+
// create temp folder to used during packaging
23+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "flow-builder"));
24+
2125
for (const [_, project] of Object.entries(projects)) {
22-
const projectDir = `flows/${project.name}`;
23-
if (fs.existsSync(path.join(projectDir, flowFilename))) {
26+
const sourceProjectDir = `flows/${project.name}`;
27+
const projectDir = `${tmpDir}/${project.name}`;
28+
console.log(
29+
`Copying files from '${sourceProjectDir}/' to '${projectDir}' (tmpdir)`,
30+
);
31+
fs.cpSync(sourceProjectDir, `${tmpDir}/${project.name}`, { recursive: true });
32+
const flowFile = path.join(projectDir, flowFilename);
33+
34+
if (fs.existsSync(flowFile)) {
35+
// inject name and version into the flows.toml file
36+
const contents = fs.readFileSync(flowFile, { encoding: "utf-8" });
37+
fs.writeFileSync(
38+
flowFile,
39+
[
40+
`# name = "${project.name}"`,
41+
`# version = "${project.version || "0.0.0"}"\n`,
42+
contents,
43+
].join("\n"),
44+
);
45+
2446
const image = `${registry}/${owner}/${project.name}:${project.version}`;
2547
console.log(
2648
`\nPublishing flow. project=${project.name}, version=${project.version}, module=${project.module}`,
@@ -31,4 +53,6 @@ for (const [_, project] of Object.entries(projects)) {
3153
}
3254
}
3355

56+
fs.rmSync(tmpDir, { recursive: true, force: true });
57+
3458
process.exit(0);

0 commit comments

Comments
 (0)