This commit is contained in:
Brent Larsen
2026-09-04 22:54:50 -05:00
parent a0bd113695
commit 5069f75171
15 changed files with 609 additions and 1 deletions
+52
View File
@@ -0,0 +1,52 @@
#!/usr/bin/env node
const { initialize } = require("..");
function getArtifactName(args) {
const inline = args.find(arg => arg.startsWith("--artifact="));
if (inline) return inline.slice("--artifact=".length);
const index = args.indexOf("--artifact");
if (index === -1) return null;
if (!args[index + 1]) throw new Error("--artifact requires a name");
return args[index + 1];
}
function getSettingOverlays(args) {
const overlays = [];
for (let i = 0; i < args.length; i++) {
const arg = args[i];
if (arg.startsWith("--setting=")) {
const value = arg.slice("--setting=".length);
if (!value) throw new Error("--setting requires a file path");
overlays.push(value);
continue;
}
if (arg !== "--setting") continue;
if (!args[i + 1]) throw new Error("--setting requires a file path");
overlays.push(args[++i]);
}
return overlays;
}
async function main() {
const args = process.argv.slice(2);
const optimus = initialize(process.cwd(), { settingOverlays: getSettingOverlays(args) });
const artifactName = getArtifactName(args);
if (artifactName) {
await optimus.buildArtifact(artifactName);
console.log(`Artifact complete: ${artifactName}`);
return;
}
const artifacts = optimus.getSettings("artifacts");
const names = Object.keys(artifacts);
await optimus.buildAll();
console.log(names.length ? `Artifacts complete: ${names.join(", ")}` : "No artifacts configured.");
}
main().catch(error => {
console.error(error.message || error);
process.exitCode = 1;
});