@xcelsior/demo-pipeline 0.1.1 → 0.1.2

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/bin/cli.js CHANGED
@@ -12,6 +12,7 @@
12
12
  */
13
13
  const fs = require("fs");
14
14
  const path = require("path");
15
+ const cp = require("child_process");
15
16
 
16
17
  const TEMPLATE = path.join(__dirname, "..", "template");
17
18
  const CWD = process.cwd();
@@ -75,12 +76,33 @@ function run(overwrite) {
75
76
  }
76
77
  }
77
78
 
79
+ // resolve the project's brand logo immediately (not only at render time)
80
+ function resolveLogo() {
81
+ try {
82
+ const tool = path.join(CWD, "tools", "demo-pipeline");
83
+ const finder = path.join(tool, "pipeline", "find_logo.sh");
84
+ if (!fs.existsSync(finder)) return;
85
+ const found = cp.execSync(`bash "${finder}"`, { encoding: "utf8" }).trim();
86
+ const dest = path.join(tool, "remotion", "public", "brand", "logo-white.png");
87
+ if (!found || !fs.existsSync(found)) { console.log(" logo: none found in repo → xcelsior fallback"); return; }
88
+ if (found.toLowerCase().endsWith(".svg")) {
89
+ try { cp.execSync(`rsvg-convert -w 1400 "${found}" -o "${dest}"`); }
90
+ catch { console.log(` logo: ${found} (svg — run setup for rsvg; resolves on first render)`); return; }
91
+ } else {
92
+ fs.copyFileSync(found, dest);
93
+ }
94
+ console.log(` logo: ${found}`);
95
+ } catch { /* non-fatal */ }
96
+ }
97
+
78
98
  if (cmd === "init") {
79
99
  run(false);
100
+ resolveLogo();
80
101
  console.log("✓ demo-pipeline scaffolded -> tools/demo-pipeline/ + .claude/commands/demo-video.md");
81
102
  console.log("Next: edit tools/demo-pipeline/demo.config.json → pnpm --dir tools/demo-pipeline setup → /demo-video");
82
103
  } else if (cmd === "update") {
83
104
  run(true);
105
+ resolveLogo();
84
106
  console.log("✓ engine updated (kept your demo.config.json, capture flow, and brand assets)");
85
107
  } else {
86
108
  console.log("usage: xcelsior-demo <init|update>");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xcelsior/demo-pipeline",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Scaffold an automated demo-video pipeline (capture real UI → Kokoro voice-over → OpenScreen-style Remotion edit) into any repo. Driven by Claude via /demo-video.",
5
5
  "bin": {
6
6
  "xcelsior-demo": "bin/cli.js"
@@ -6,7 +6,9 @@ ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"
6
6
  mapfile -t cands < <(
7
7
  find "$ROOT" \
8
8
  \( -path '*/node_modules/*' -o -path '*/.git/*' -o -path '*/dist/*' -o -path '*/.next/*' \
9
- -o -path '*/build/*' -o -path '*/tools/demo-pipeline/*' \) -prune -o \
9
+ -o -path '*/.open-next/*' -o -path '*/.expo/*' -o -path '*/.astro/*' -o -path '*/build/*' \
10
+ -o -path '*/Pods/*' -o -path '*/android/*' -o -path '*/ios/*' -o -path '*/coverage/*' \
11
+ -o -path '*/tools/demo-pipeline/*' \) -prune -o \
10
12
  -type f \( -iname '*logo*.png' -o -iname '*logo*.svg' \) -print 2>/dev/null
11
13
  )
12
14