@plexus-ms/lib 0.5.0 → 0.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,EAAU,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAkB,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjE,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,OAAO;IAClB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;gBAEJ,OAAO,EAAE,OAAO,EAAE,EAAE,GAAE,EAAa;IAW/C,kFAAkF;IAClF,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,IAAI;IAIlC,0EAA0E;IAC1E,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAO,GAAG,IAAI;IAMnC;;;OAGG;IACH,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAoB,GAAG,IAAI;IAQlE,iFAAiF;IACjF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,OAAO,GAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAO1C;;;OAGG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASjD,+EAA+E;IACzE,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAStC;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAOhC,OAAO;CAYtB"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,EAAU,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAkB,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjE,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,qBAAa,OAAO;IAClB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;gBAEJ,OAAO,EAAE,OAAO,EAAE,EAAE,GAAE,EAAa;IAW/C,kFAAkF;IAClF,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,IAAI;IAIlC,0EAA0E;IAC1E,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAO,GAAG,IAAI;IAMnC;;;OAGG;IACH,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,GAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAoB,GAAG,IAAI;IAQlE,iFAAiF;IACjF,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,EAAE,OAAO,GAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAO1C;;;OAGG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASjD,+EAA+E;IACzE,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAStC;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAOhC,OAAO;CAUtB"}
package/dist/context.js CHANGED
@@ -108,8 +108,6 @@ export class Context {
108
108
  switch (step.kind) {
109
109
  case 'run':
110
110
  return this.io.exec(step.command, step.args, { cwd: step.cwd, input: step.input, inherit });
111
- case 'ssh':
112
- return this.io.exec('ssh', [step.host, 'bash', '-s'], { input: step.script, inherit });
113
111
  case 'write':
114
112
  await this.io.writeFile(step.path, step.content);
115
113
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,sCAAsC;AACtC,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,sDAAsD;AACtD,4EAA4E;AAC5E,0EAA0E;AAC1E,gEAAgE;AAChE,6EAA6E;AAC7E,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,wEAAwE;AACxE,4EAA4E;AAC5E,oEAAoE;AACpE,OAAO,EAA4C,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAwB,MAAM,WAAW,CAAC;AAWjE,MAAM,OAAO,OAAO;IACT,MAAM,CAAU;IAChB,OAAO,CAAS;IAChB,KAAK,CAAU;IACf,GAAG,CAAU;IACb,IAAI,CAAU;IACd,EAAE,CAAK;IAEhB,YAAY,OAAgB,EAAE,KAAS,MAAM,EAAE;QAC7C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IACpC,CAAC;IAED,6EAA6E;IAE7E,kFAAkF;IAClF,GAAG,CAAC,IAAY,EAAE,KAAK,GAAG,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK;YAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAAC,IAAY,EAAE,EAAE,GAAG,IAAI;QAC1B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,6EAA6E;IAE7E;;;OAGG;IACH,MAAM,CAAI,IAAO,EAAE,QAA6B,WAAW;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,CAAC,gDAAgD;QACzE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,4EAA4E;IAE5E,iFAAiF;IACjF,IAAI,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,UAAwC,EAAE;QACnF,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,6EAA6E;IAE7E;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,QAAgB;QAC5B,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,kCAAkC,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,KAAK,CAAC,IAAU;QACpB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,KAAK,KAAK,SAAS;gBAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAU;QACd,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,IAAU;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;QACxF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9F,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACzF,KAAK,OAAO;gBACV,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjD,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;CACF;AAED,SAAS,WAAW,CAAC,IAAa;IAChC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,IAAI;SACR,OAAO,EAAE;SACT,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;SACtB,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { Context } from './context.ts';
2
+ export interface DeployOptions {
3
+ /** ssh target, `deploy@host`. */
4
+ host: string;
5
+ tenant: string;
6
+ app: string;
7
+ /** The image ref to pin; empty or absent for a third-party app whose file pins its own. */
8
+ image?: string;
9
+ /** The readiness URL polled on the host; resolved there from .env and the `plexus.healthz` label when empty. */
10
+ healthUrl?: string;
11
+ /** Poll attempts, two seconds apart. */
12
+ retries?: number;
13
+ /** The app dir on the host; default /opt/stacks/<tenant>/<app>, the configure playbook's layout. */
14
+ appDir?: string;
15
+ /** The app's dir in the checkout; default apps/<app>. */
16
+ source?: string;
17
+ /** The checkout; default the cwd. */
18
+ dir?: string;
19
+ }
20
+ export interface Deploy {
21
+ host: string;
22
+ appDir: string;
23
+ /** The compose file read, relative to the checkout. */
24
+ compose: string;
25
+ image?: string;
26
+ /** The image that was live before, from the running container. */
27
+ previous?: string;
28
+ /** The image live at the end, healthy or rolled back to. */
29
+ live?: string;
30
+ healthy: boolean;
31
+ rolledBack: boolean;
32
+ }
33
+ /**
34
+ * Pin the image ref in place of the ${PLEXUS_DEPLOYMENT_IMAGE} placeholder
35
+ * (§ 3 PLX-App), with or without a `:?message` suffix: one literal
36
+ * substitution, nothing else touched. A first-party file without the
37
+ * placeholder would silently ignore the ref, and a third-party file with one
38
+ * would ship an empty image; both are errors here, never on the host.
39
+ */
40
+ export declare function renderCompose(text: string, image: string | undefined, path: string): string;
41
+ /** Single-quote a word for a remote shell. */
42
+ export declare const q: (word: string) => string;
43
+ /** Deploy from the checkout at `dir`: read, render, then the host-side steps in order. */
44
+ export declare function deploy(ctx: Context, options: DeployOptions): Promise<Deploy>;
45
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAK5C,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gHAAgH;IAChH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oGAAoG;IACpG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACrB;AAKD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAY3F;AAED,8CAA8C;AAC9C,eAAO,MAAM,CAAC,GAAI,MAAM,MAAM,KAAG,MAA8C,CAAC;AAgEhF,0FAA0F;AAC1F,wBAAsB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA4HlF"}
package/dist/deploy.js ADDED
@@ -0,0 +1,252 @@
1
+ // deploy: launch a released artifact into an execution environment (§ 6
2
+ // PLX-Delivery). A stateless procedure, not a system:
3
+ //
4
+ // render compose.yaml from the invoking checkout, pinning the image ref (§§ 2 and 3 PLX-App)
5
+ // → stage it on the host → docker compose pull → compose run --rm migrate (if declared),
6
+ // both against the staged file → swap the file into place → docker compose up -d
7
+ // → poll the readiness path → on failure: restore the previous file, up -d (no pull), fail
8
+ //
9
+ // Run from a checkout of the app's SOURCE repo (§ 2 PLX-App): an app repo's
10
+ // CI, or the platform repo for third-party software the tenant merely
11
+ // operates. The run shape, apps/<app>/docker/compose.yaml (or
12
+ // apps/<app>/compose.yaml), is read from there, rendered with the concrete
13
+ // image ref in place of ${PLEXUS_DEPLOYMENT_IMAGE}, staged on the host, and
14
+ // swapped into place only once pull and migrate have succeeded, so the compose
15
+ // file on the host always names the image it serves, and a failed deploy
16
+ // leaves the host exactly as it was. Three files in the app dir, one writer
17
+ // each (PLX-Secrets): the configure playbook owns .env and .env.secret, this
18
+ // verb owns compose.yaml. Compose reads .env implicitly, so every command here
19
+ // and by a human is a bare `docker compose …` in the app dir.
20
+ //
21
+ // Every command sent to the host is one line of shell over ssh, carried in
22
+ // the plan and printed verbatim by the dry run, so a stranded operator copies
23
+ // the lines; the host needs bash, docker and curl and nothing else. The ssh
24
+ // calls share one connection (ControlMaster), opened by the first and closed
25
+ // at the end. Reality is the source of truth: the previous image is read from
26
+ // the running container, never from a file this verb owns.
27
+ //
28
+ // Migrations are an artifact capability, not a host toolchain: an app that
29
+ // has them declares a one-shot `migrate` service (same image, migrate command,
30
+ // `profiles: ["migrate"]` so plain `up` never starts it). The `web` service is
31
+ // the app service by convention; it is the one the live image and the
32
+ // readiness path are read from, every other service rides along with pull
33
+ // and up. A third-party app pins its image inside compose.yaml and passes no
34
+ // image ref; the file is then placed as is.
35
+ //
36
+ // plx deploy deploy@1.2.3.4 plexus website --image ghcr.io/org/website:<sha>
37
+ // plx -n deploy deploy@host plexus beszel # the ssh lines it would run
38
+ import { randomBytes } from 'node:crypto';
39
+ import { tmpdir } from 'node:os';
40
+ import { join } from 'node:path';
41
+ import { ExecError } from "./io.js";
42
+ import { run } from "./plan.js";
43
+ import { UsageError } from "./train.js";
44
+ const PLACEHOLDER = /\$\{PLEXUS_DEPLOYMENT_IMAGE(:[^}]*)?\}/g;
45
+ const INCOMING = '.incoming';
46
+ /**
47
+ * Pin the image ref in place of the ${PLEXUS_DEPLOYMENT_IMAGE} placeholder
48
+ * (§ 3 PLX-App), with or without a `:?message` suffix: one literal
49
+ * substitution, nothing else touched. A first-party file without the
50
+ * placeholder would silently ignore the ref, and a third-party file with one
51
+ * would ship an empty image; both are errors here, never on the host.
52
+ */
53
+ export function renderCompose(text, image, path) {
54
+ const has = PLACEHOLDER.test(text);
55
+ PLACEHOLDER.lastIndex = 0;
56
+ if (image) {
57
+ if (!has)
58
+ throw new UsageError(`${path} does not reference \${PLEXUS_DEPLOYMENT_IMAGE}; an image ref was given but nothing would use it (§ 3 PLX-App)`);
59
+ return text.replace(PLACEHOLDER, image);
60
+ }
61
+ if (has)
62
+ throw new UsageError(`${path} references \${PLEXUS_DEPLOYMENT_IMAGE} but no image ref was given`);
63
+ return text;
64
+ }
65
+ /** Single-quote a word for a remote shell. */
66
+ export const q = (word) => `'${word.replaceAll("'", "'\\''")}'`;
67
+ /** The ssh calls of one deploy, sharing a connection; each command is one line of shell. */
68
+ class Remote {
69
+ socket = join(tmpdir(), `plx-deploy-${randomBytes(4).toString('hex')}.sock`);
70
+ ctx;
71
+ host;
72
+ constructor(ctx, host) {
73
+ this.ctx = ctx;
74
+ this.host = host;
75
+ }
76
+ args(command) {
77
+ return [
78
+ '-o',
79
+ 'ControlMaster=auto',
80
+ '-o',
81
+ `ControlPath=${this.socket}`,
82
+ '-o',
83
+ 'ControlPersist=60',
84
+ '-o',
85
+ 'StrictHostKeyChecking=accept-new',
86
+ this.host,
87
+ '--',
88
+ command,
89
+ ];
90
+ }
91
+ /** An effect on the host: narrated, performed unless --dry-run. */
92
+ exec(command, input) {
93
+ return this.ctx.apply([run('ssh', this.args(command), input === undefined ? {} : { input })]);
94
+ }
95
+ /**
96
+ * A read from the host: its output, or undefined under --dry-run, where no
97
+ * host is reached. A read that is a step of the procedure (`show`) is
98
+ * printed by the dry run like an effect, so the operator copies it too.
99
+ */
100
+ async read(command, show = false) {
101
+ if (this.ctx.dryRun) {
102
+ this.ctx.say(`${show ? '[dry-run] $' : '?'} ssh ${this.host} -- ${q(command)}`, show ? 0 : 1);
103
+ return undefined;
104
+ }
105
+ return (await this.ctx.read('ssh', this.args(command))).trimEnd();
106
+ }
107
+ /** A check on the host: whether the command succeeds, or undefined under --dry-run. */
108
+ async test(command, show = false) {
109
+ try {
110
+ return (await this.read(command, show)) === undefined ? undefined : true;
111
+ }
112
+ catch (error) {
113
+ if (error instanceof ExecError)
114
+ return false;
115
+ throw error;
116
+ }
117
+ }
118
+ /** Close the shared connection; nothing to close when no call was made. */
119
+ close() {
120
+ return this.ctx.apply([run('ssh', ['-o', `ControlPath=${this.socket}`, '-O', 'exit', this.host])]);
121
+ }
122
+ }
123
+ /** Deploy from the checkout at `dir`: read, render, then the host-side steps in order. */
124
+ export async function deploy(ctx, options) {
125
+ const { host, tenant, app } = options;
126
+ const dir = options.dir ?? '.';
127
+ const image = options.image || undefined;
128
+ const appDir = options.appDir || `/opt/stacks/${tenant}/${app}`;
129
+ const source = options.source || `apps/${app}`;
130
+ const retries = options.retries ?? 30;
131
+ // The run shape, from the invoking checkout (§ 2 PLX-App).
132
+ let compose;
133
+ let text = '';
134
+ for (const candidate of [`${source}/docker/compose.yaml`, `${source}/compose.yaml`]) {
135
+ try {
136
+ text = await ctx.readFile(join(dir, candidate));
137
+ compose = candidate;
138
+ break;
139
+ }
140
+ catch { }
141
+ }
142
+ if (compose === undefined)
143
+ throw new UsageError(`no compose.yaml under ${source}; run from the app's source repo (§ 2 PLX-App)`);
144
+ const rendered = renderCompose(text, image, compose);
145
+ ctx.say(`→ deploying ${image ?? '<image pinned in compose.yaml>'}`);
146
+ ctx.say(` host: ${host}`);
147
+ ctx.say(` dir: ${appDir}`);
148
+ ctx.say(` compose: ${compose}`);
149
+ ctx.say(` health: ${options.healthUrl || '<resolved on host>'}`);
150
+ const remote = new Remote(ctx, host);
151
+ const D = q(appDir);
152
+ // The staged compose file, read in place: --project-directory keeps .env and
153
+ // relative paths resolving against the app dir, so pull and migrate run
154
+ // against the new run shape while the host keeps serving from the old one.
155
+ const dc = `cd ${D} && docker compose`;
156
+ const dci = `${dc} --project-directory . -f ${INCOMING}/compose.yaml`;
157
+ const liveImage = `${dc} ps -q web 2>/dev/null | head -1 | xargs -r docker inspect --format '{{.Config.Image}}' 2>/dev/null || true`;
158
+ const result = { host, appDir, compose, image, healthy: false, rolledBack: false };
159
+ let staged = false;
160
+ try {
161
+ // Stage into a verb-owned dir inside the app dir; only the file is written,
162
+ // never the dir's own mode, which the playbook set. Nothing the host runs
163
+ // from is touched until the checks below have passed.
164
+ await remote.exec(`rm -rf ${D}/${INCOMING} && mkdir -p ${D}/${INCOMING} && cat > ${D}/${INCOMING}/compose.yaml`, rendered);
165
+ staged = true;
166
+ result.previous = (await remote.read(liveImage)) || undefined;
167
+ ctx.say(` previous: ${result.previous ?? (ctx.dryRun ? '<read on host>' : '<none>')}`);
168
+ // Pull → migrate (idempotent; runs only if compose.yaml declares it), both
169
+ // against the STAGED run shape: a failure here leaves the host exactly as
170
+ // it was. Every non-profiled service is pulled, not just `web`.
171
+ await remote.exec(`${dci} pull`);
172
+ // `compose run` targets the service regardless of its profile; the --profile
173
+ // flag is only needed for the existence check, since `config --services`
174
+ // hides profiled services by default. stdin from /dev/null: `compose run`
175
+ // is interactive by default and would wait on a terminal that is not there.
176
+ const migrate = await remote.test(`${dci} --profile migrate config --services 2>/dev/null | grep -qx migrate`);
177
+ if (migrate === undefined)
178
+ ctx.say(' (if compose.yaml declares a migrate service:)');
179
+ if (migrate !== false)
180
+ await remote.exec(`${dci} run --rm migrate </dev/null`);
181
+ // Swap the run shape into place; the previous one is kept for rollback
182
+ // until this run ends.
183
+ const hadPrev = await remote.test(`test -f ${D}/compose.yaml`);
184
+ if (hadPrev !== false)
185
+ await remote.exec(`cd ${D} && cp -p compose.yaml ${INCOMING}/compose.yaml.prev`);
186
+ await remote.exec(`cd ${D} && mv ${INCOMING}/compose.yaml compose.yaml`);
187
+ // No pull here: the new image was pulled above, the previous one is in the
188
+ // host's cache; a rollback must never depend on the registry answering.
189
+ await remote.exec(`${dc} up -d`);
190
+ // Readiness path: /healthz by contract (§ 5 PLX-App); a third-party image
191
+ // that cannot serve it declares its own via the `plexus.healthz` label,
192
+ // read from the running container, reality, not a parse of the compose
193
+ // file. Each attempt is bounded, so a container that accepts connections
194
+ // but never answers cannot hang the deploy.
195
+ const url = options.healthUrl || (await resolveHealthUrl(remote, D, dc, ctx));
196
+ const poll = `cd ${D} && for _ in $(seq 1 ${retries}); do curl -fsS --max-time 5 -o /dev/null ${q(url)} && exit 0; sleep 2; done; exit 1`;
197
+ const started = Date.now();
198
+ const healthy = await remote.test(poll, true);
199
+ if (healthy !== false) {
200
+ result.live = (await remote.read(liveImage)) || image;
201
+ result.healthy = true;
202
+ if (ctx.dryRun)
203
+ ctx.say(' (on failure: restore the previous compose.yaml, up -d, poll again)');
204
+ else
205
+ ctx.done(`${result.live ?? 'the app'} is live and healthy`);
206
+ return result;
207
+ }
208
+ ctx.say(`✗ healthcheck failed after ${Math.round((Date.now() - started) / 1000)}s; last lines from the app:`);
209
+ const logs = await remote.read(`${dc} logs --no-color --tail 50 web 2>&1 || true`);
210
+ if (logs)
211
+ ctx.say(logs.replace(/^/gm, ' '));
212
+ // Rollback: the previous compose file, image pinned, so it is the
213
+ // combination that was actually serving. There is something to go back to
214
+ // when the file changed with a container running; a first deploy, or a
215
+ // re-deploy of the very same run shape, has no previous state and fails
216
+ // loudly instead.
217
+ const differs = hadPrev && (await remote.test(`cd ${D} && ! cmp -s compose.yaml ${INCOMING}/compose.yaml.prev`));
218
+ if (!differs) {
219
+ ctx.done('nothing to roll back to (first deploy, or the same run shape re-deployed); manual intervention needed', false);
220
+ return result;
221
+ }
222
+ await remote.exec(`cd ${D} && cp -p ${INCOMING}/compose.yaml.prev compose.yaml`);
223
+ ctx.say(`↩ rolling back to ${result.previous ?? 'the previous compose.yaml'}`);
224
+ await remote.exec(`${dc} up -d`);
225
+ result.rolledBack = true;
226
+ if (await remote.test(poll)) {
227
+ result.live = result.previous;
228
+ ctx.done(`rolled back to ${result.previous ?? 'the previous compose.yaml'}`);
229
+ }
230
+ else {
231
+ ctx.done('rollback also unhealthy; manual intervention needed', false);
232
+ }
233
+ return result;
234
+ }
235
+ finally {
236
+ // The staged run shape and the rollback copy are gone on exit, whatever
237
+ // happened; the shared connection with them.
238
+ if (staged)
239
+ await remote.exec(`rm -rf ${D}/${INCOMING}`).catch(() => undefined);
240
+ await remote.close().catch(() => undefined);
241
+ }
242
+ }
243
+ async function resolveHealthUrl(remote, D, dc, ctx) {
244
+ const port = await remote.read(`sed -n 's/^PLEXUS_LOOPBACK_PORT=//p' ${D}/.env 2>/dev/null | tail -1`);
245
+ const path = await remote.read(`${dc} ps -q web 2>/dev/null | head -1 | xargs -r docker inspect --format '{{ index .Config.Labels "plexus.healthz" }}' 2>/dev/null || true`);
246
+ const url = ctx.dryRun
247
+ ? 'http://127.0.0.1:${PLEXUS_LOOPBACK_PORT:-3000}${plexus.healthz:-/healthz}'
248
+ : `http://127.0.0.1:${port || '3000'}${path || '/healthz'}`;
249
+ ctx.say(` health: ${url}`);
250
+ return url;
251
+ }
252
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export { CHANGESET_DIR, type Changeset, type ChangesetInput, changesetPath, type
5
5
  export { type Consumer, expectedBranch, findConsumers, presetSource, type Site } from './consumers.ts';
6
6
  export { Context, type Options } from './context.ts';
7
7
  export { ANSWERS_FILE, type Answers, parseAnswers, TEMPLATE_FILES } from './copier.ts';
8
+ export { type Deploy, type DeployOptions, deploy, q as shellQuote, renderCompose } from './deploy.ts';
8
9
  export { type DeployTargets, type InventoryFile, parseInventoryFile, readDeployTargets, selectDeployTargets, } from './deployTargets.ts';
9
10
  export { compareTrains, type Diagnosis, diagnose, type Report } from './doctor.ts';
10
11
  export { frontmatterField, setFrontmatterField } from './frontmatter.ts';
@@ -12,7 +13,7 @@ export { type DirEntry, ExecError, type ExecOptions, type Io, realIo, render } f
12
13
  export { type Declaration, MARKER_FILE, parseMarker, splitFrontmatter } from './marker.ts';
13
14
  export { type Directory, type GitFacet, isNotable, type Kind, kindOf, shortRemote, type TemplateFacet, } from './model.ts';
14
15
  export { overview, PRUNED, type ScanOptions } from './overview.ts';
15
- export { body, describe, type Plan, run, type Step, ssh, write } from './plan.ts';
16
+ export { body, describe, type Plan, run, type Step, write } from './plan.ts';
16
17
  export { isClean, propagate, type Summary } from './propagate.ts';
17
18
  export { type CompendiumCheck, checkCompendium, extractRequirements, MAP_PAGE, modulePages, type PageMode, type Scan, scanPage, } from './requirements.ts';
18
19
  export { type ShipOptions, type ShipResult, ship } from './ship.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,KAAK,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,KAAK,QAAQ,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EACL,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,SAAS,EACT,KAAK,IAAI,EACT,MAAM,EACN,WAAW,EACX,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EACL,KAAK,eAAe,EACpB,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,IAAI,EACT,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,WAAW,EACX,KAAK,KAAK,EACV,KAAK,SAAS,EACd,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,KAAK,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACtG,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,KAAK,QAAQ,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EACL,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,SAAS,EACT,KAAK,IAAI,EACT,MAAM,EACN,WAAW,EACX,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EACL,KAAK,eAAe,EACpB,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,IAAI,EACT,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,WAAW,EACX,KAAK,KAAK,EACV,KAAK,SAAS,EACd,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ export { CHANGESET_DIR, changesetPath, parseCatalogs, planChangeset, readChanges
13
13
  export { expectedBranch, findConsumers, presetSource } from "./consumers.js";
14
14
  export { Context } from "./context.js";
15
15
  export { ANSWERS_FILE, parseAnswers, TEMPLATE_FILES } from "./copier.js";
16
+ export { deploy, q as shellQuote, renderCompose } from "./deploy.js";
16
17
  export { parseInventoryFile, readDeployTargets, selectDeployTargets, } from "./deployTargets.js";
17
18
  export { compareTrains, diagnose } from "./doctor.js";
18
19
  export { frontmatterField, setFrontmatterField } from "./frontmatter.js";
@@ -20,7 +21,7 @@ export { ExecError, realIo, render } from "./io.js";
20
21
  export { MARKER_FILE, parseMarker, splitFrontmatter } from "./marker.js";
21
22
  export { isNotable, kindOf, shortRemote, } from "./model.js";
22
23
  export { overview, PRUNED } from "./overview.js";
23
- export { body, describe, run, ssh, write } from "./plan.js";
24
+ export { body, describe, run, write } from "./plan.js";
24
25
  export { isClean, propagate } from "./propagate.js";
25
26
  export { checkCompendium, extractRequirements, MAP_PAGE, modulePages, scanPage, } from "./requirements.js";
26
27
  export { ship } from "./ship.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,sEAAsE;AACtE,uDAAuD;AACvD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAA6B,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAIL,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EAGb,aAAa,EAGb,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAiB,cAAc,EAAE,aAAa,EAAE,YAAY,EAAa,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAgB,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAGL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAkB,QAAQ,EAAe,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAiB,SAAS,EAA6B,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAoB,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAGL,SAAS,EAET,MAAM,EACN,WAAW,GAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAa,GAAG,EAAa,GAAG,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAEL,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,WAAW,EAGX,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAqC,IAAI,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,WAAW,EAGX,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,sEAAsE;AACtE,uDAAuD;AACvD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,KAAK,GACN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAA6B,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAIL,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EAGb,aAAa,EAGb,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAiB,cAAc,EAAE,aAAa,EAAE,YAAY,EAAa,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAgB,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAmC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACtG,OAAO,EAGL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAkB,QAAQ,EAAe,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAiB,SAAS,EAA6B,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAoB,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAGL,SAAS,EAET,MAAM,EACN,WAAW,GAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAa,GAAG,EAAa,KAAK,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAEL,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,WAAW,EAGX,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAqC,IAAI,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,WAAW,EAGX,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
package/dist/plan.d.ts CHANGED
@@ -5,10 +5,6 @@ export type Step = {
5
5
  cwd?: string;
6
6
  input?: string;
7
7
  interactive?: boolean;
8
- } | {
9
- kind: 'ssh';
10
- host: string;
11
- script: string;
12
8
  } | {
13
9
  kind: 'write';
14
10
  path: string;
@@ -20,8 +16,6 @@ export declare const run: (command: string, args?: string[], options?: {
20
16
  input?: string;
21
17
  interactive?: boolean;
22
18
  }) => Step;
23
- /** Feed a bash script to a host: the remote half of a verb stays bash, carried verbatim. */
24
- export declare const ssh: (host: string, script: string) => Step;
25
19
  export declare const write: (path: string, content: string) => Step;
26
20
  /** One line, the shell equivalent of the step. */
27
21
  export declare function describe(step: Step): string;
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GACrG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;AAE1B,eAAO,MAAM,GAAG,GACd,SAAS,MAAM,EACf,OAAM,MAAM,EAAO,EACnB,UAAS;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,KACpE,IAKD,CAAC;AAEH,4FAA4F;AAC5F,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAG,IAAuC,CAAC;AAE3F,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,IAA0C,CAAC;AAEjG,kDAAkD;AAClD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAS3C;AAED,6EAA6E;AAC7E,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CASnD"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GACrG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC;AAE1B,eAAO,MAAM,GAAG,GACd,SAAS,MAAM,EACf,OAAM,MAAM,EAAO,EACnB,UAAS;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,KACpE,IAKD,CAAC;AAEH,eAAO,MAAM,KAAK,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,IAA0C,CAAC;AAEjG,kDAAkD;AAClD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAO3C;AAED,6EAA6E;AAC7E,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAOnD"}
package/dist/plan.js CHANGED
@@ -12,16 +12,12 @@ export const run = (command, args = [], options = {}) => ({
12
12
  args,
13
13
  ...options,
14
14
  });
15
- /** Feed a bash script to a host: the remote half of a verb stays bash, carried verbatim. */
16
- export const ssh = (host, script) => ({ kind: 'ssh', host, script });
17
15
  export const write = (path, content) => ({ kind: 'write', path, content });
18
16
  /** One line, the shell equivalent of the step. */
19
17
  export function describe(step) {
20
18
  switch (step.kind) {
21
19
  case 'run':
22
20
  return `$ ${step.cwd ? `(cd ${step.cwd} && ` : ''}${render(step.command, step.args)}${step.cwd ? ')' : ''}`;
23
- case 'ssh':
24
- return `$ ${render('ssh', [step.host, 'bash', '-s'])} <<'EOF'`;
25
21
  case 'write':
26
22
  return `> ${step.path} (${Buffer.byteLength(step.content)} bytes)`;
27
23
  }
@@ -31,8 +27,6 @@ export function body(step) {
31
27
  switch (step.kind) {
32
28
  case 'run':
33
29
  return step.input;
34
- case 'ssh':
35
- return `${step.script.trimEnd()}\nEOF`;
36
30
  case 'write':
37
31
  return step.content;
38
32
  }
package/dist/plan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,wEAAwE;AACxE,+BAA+B;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AASjC,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,OAAe,EACf,OAAiB,EAAE,EACnB,UAAmE,EAAE,EAC/D,EAAE,CAAC,CAAC;IACV,IAAI,EAAE,KAAK;IACX,OAAO;IACP,IAAI;IACJ,GAAG,OAAO;CACX,CAAC,CAAC;AAEH,4FAA4F;AAC5F,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,MAAc,EAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,OAAe,EAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAEjG,kDAAkD;AAClD,MAAM,UAAU,QAAQ,CAAC,IAAU;IACjC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9G,KAAK,KAAK;YACR,OAAO,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC;QACjE,KAAK,OAAO;YACV,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IACvE,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,IAAI,CAAC,IAAU;IAC7B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,KAAK,KAAK;YACR,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;QACzC,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,wEAAwE;AACxE,+BAA+B;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAQjC,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,OAAe,EACf,OAAiB,EAAE,EACnB,UAAmE,EAAE,EAC/D,EAAE,CAAC,CAAC;IACV,IAAI,EAAE,KAAK;IACX,OAAO;IACP,IAAI;IACJ,GAAG,OAAO;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,OAAe,EAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAEjG,kDAAkD;AAClD,MAAM,UAAU,QAAQ,CAAC,IAAU;IACjC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC9G,KAAK,OAAO;YACV,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IACvE,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,IAAI,CAAC,IAAU;IAC7B,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plexus-ms/lib",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "The Plexus verbs as a library: the plan-then-apply core behind plx, and the one parser of Plexus's own file shapes",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "type": "module",