@plexus-ms/lib 0.2.0 → 0.3.1
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/bookkeeping.d.ts +26 -0
- package/dist/bookkeeping.d.ts.map +1 -0
- package/dist/bookkeeping.js +51 -0
- package/dist/bookkeeping.js.map +1 -0
- package/dist/consumers.d.ts +31 -0
- package/dist/consumers.d.ts.map +1 -0
- package/dist/consumers.js +70 -0
- package/dist/consumers.js.map +1 -0
- package/dist/context.d.ts +7 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +19 -3
- package/dist/context.js.map +1 -1
- package/dist/frontmatter.d.ts +9 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +42 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/io.d.ts +6 -1
- package/dist/io.d.ts.map +1 -1
- package/dist/io.js +5 -1
- package/dist/io.js.map +1 -1
- package/dist/plan.d.ts +2 -0
- package/dist/plan.d.ts.map +1 -1
- package/dist/plan.js.map +1 -1
- package/dist/propagate.d.ts +20 -0
- package/dist/propagate.d.ts.map +1 -0
- package/dist/propagate.js +226 -0
- package/dist/propagate.js.map +1 -0
- package/dist/requirements.d.ts +27 -0
- package/dist/requirements.d.ts.map +1 -0
- package/dist/requirements.js +188 -0
- package/dist/requirements.js.map +1 -0
- package/dist/ship.d.ts +18 -0
- package/dist/ship.d.ts.map +1 -0
- package/dist/ship.js +131 -0
- package/dist/ship.js.map +1 -0
- package/dist/train.d.ts +45 -0
- package/dist/train.d.ts.map +1 -0
- package/dist/train.js +102 -0
- package/dist/train.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** `galaxy.yml` mirrors the tag: SCM installs record this version and reinstall on any different one. */
|
|
2
|
+
export declare const bumpGalaxyVersion: (text: string, train: string) => string;
|
|
3
|
+
/** The `plexus.platform` collection's pin in a platform repo's requirements; another collection in the same file stays. */
|
|
4
|
+
export declare function bumpCollectionPin(text: string, train: string): string;
|
|
5
|
+
export declare const WORKFLOW_REF = "plexus-ms/ci-cd/.github/workflows/";
|
|
6
|
+
/** Every `uses: plexus-ms/ci-cd/.github/workflows/<file>@<ref>` pinned to the train. */
|
|
7
|
+
export declare const bumpWorkflowRefs: (text: string, train: string) => string;
|
|
8
|
+
/** The map's frontmatter carries the train version and the date it was cut (§ 1.5 PLX). */
|
|
9
|
+
export declare const stampStandard: (text: string, train: string, today: string) => string;
|
|
10
|
+
/** `changed: <train>` on a module page: replaced in place, or inserted after `binds:` (the field order of § 1.3 PLX). */
|
|
11
|
+
export declare const stampChanged: (text: string, train: string) => string;
|
|
12
|
+
/** Leftovers of a three-way apply that did not go through. */
|
|
13
|
+
export declare const hasConflictMarkers: (text: string) => boolean;
|
|
14
|
+
/** Whether `git status --porcelain` output shows unmerged entries. */
|
|
15
|
+
export declare const hasUnmergedEntries: (porcelain: string) => boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The marker says which train a unit was brought up to (§ 1.4 PLX). copier
|
|
18
|
+
* re-renders it only when the preset's content changed, so a train that
|
|
19
|
+
* touched nothing in a preset would leave `plexus:` behind while bumping the
|
|
20
|
+
* answers file; this syncs it to the answers file's `_commit`, which copier
|
|
21
|
+
* always writes. A marker with conflict markers is left to the human.
|
|
22
|
+
*/
|
|
23
|
+
export declare function syncMarker(marker: string, commit: string): string;
|
|
24
|
+
/** Today as `YYYY-MM-DD` in local time, like `date +%F`. */
|
|
25
|
+
export declare function today(now?: Date): string;
|
|
26
|
+
//# sourceMappingURL=bookkeeping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bookkeeping.d.ts","sourceRoot":"","sources":["../src/bookkeeping.ts"],"names":[],"mappings":"AAMA,yGAAyG;AACzG,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MACN,CAAC;AAE3D,2HAA2H;AAC3H,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYrE;AAED,eAAO,MAAM,YAAY,uCAAuC,CAAC;AAEjE,wFAAwF;AACxF,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MACqC,CAAC;AAErG,2FAA2F;AAC3F,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,EAAE,OAAO,MAAM,KAAG,MACW,CAAC;AAEvF,yHAAyH;AACzH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,KAAG,MACM,CAAC;AAElE,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,OAAkC,CAAC;AAErF,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,KAAG,OAA4C,CAAC;AAEpG;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGjE;AAED,4DAA4D;AAC5D,wBAAgB,KAAK,CAAC,GAAG,OAAa,GAAG,MAAM,CAG9C"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// The train bookkeeping as text transforms: every version number a train repo
|
|
2
|
+
// carries becomes the train version, so cross-repo pins are right by
|
|
3
|
+
// construction (§ 1.5 PLX). Pure functions from a file's text to its new text;
|
|
4
|
+
// `ship` reads, transforms and plans a write for each one that changed.
|
|
5
|
+
import { setFrontmatterField } from "./frontmatter.js";
|
|
6
|
+
/** `galaxy.yml` mirrors the tag: SCM installs record this version and reinstall on any different one. */
|
|
7
|
+
export const bumpGalaxyVersion = (text, train) => text.replace(/^(version: )\d+\.\d+\.\d+/m, `$1${train}`);
|
|
8
|
+
/** The `plexus.platform` collection's pin in a platform repo's requirements; another collection in the same file stays. */
|
|
9
|
+
export function bumpCollectionPin(text, train) {
|
|
10
|
+
const lines = text.split('\n');
|
|
11
|
+
const start = lines.findIndex((l) => l.includes('plexus-ms/platform.git'));
|
|
12
|
+
if (start === -1)
|
|
13
|
+
return text;
|
|
14
|
+
for (let i = start; i < lines.length; i++) {
|
|
15
|
+
const m = /^(\s*version: )v?[\d.]+$/.exec(lines[i] ?? '');
|
|
16
|
+
if (m) {
|
|
17
|
+
lines[i] = `${m[1]}${train}`;
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return lines.join('\n');
|
|
22
|
+
}
|
|
23
|
+
export const WORKFLOW_REF = 'plexus-ms/ci-cd/.github/workflows/';
|
|
24
|
+
/** Every `uses: plexus-ms/ci-cd/.github/workflows/<file>@<ref>` pinned to the train. */
|
|
25
|
+
export const bumpWorkflowRefs = (text, train) => text.replace(/(plexus-ms\/ci-cd\/\.github\/workflows\/[A-Za-z0-9._-]+)@v?[0-9.]+/g, `$1@${train}`);
|
|
26
|
+
/** The map's frontmatter carries the train version and the date it was cut (§ 1.5 PLX). */
|
|
27
|
+
export const stampStandard = (text, train, today) => setFrontmatterField(setFrontmatterField(text, 'version', train), 'timestamp', today);
|
|
28
|
+
/** `changed: <train>` on a module page: replaced in place, or inserted after `binds:` (the field order of § 1.3 PLX). */
|
|
29
|
+
export const stampChanged = (text, train) => setFrontmatterField(text, 'changed', train, { after: 'binds' });
|
|
30
|
+
/** Leftovers of a three-way apply that did not go through. */
|
|
31
|
+
export const hasConflictMarkers = (text) => /^<<<<<<< /m.test(text);
|
|
32
|
+
/** Whether `git status --porcelain` output shows unmerged entries. */
|
|
33
|
+
export const hasUnmergedEntries = (porcelain) => /^(UU|AA|DU|UD)/m.test(porcelain);
|
|
34
|
+
/**
|
|
35
|
+
* The marker says which train a unit was brought up to (§ 1.4 PLX). copier
|
|
36
|
+
* re-renders it only when the preset's content changed, so a train that
|
|
37
|
+
* touched nothing in a preset would leave `plexus:` behind while bumping the
|
|
38
|
+
* answers file; this syncs it to the answers file's `_commit`, which copier
|
|
39
|
+
* always writes. A marker with conflict markers is left to the human.
|
|
40
|
+
*/
|
|
41
|
+
export function syncMarker(marker, commit) {
|
|
42
|
+
if (hasConflictMarkers(marker))
|
|
43
|
+
return marker;
|
|
44
|
+
return setFrontmatterField(marker, 'plexus', commit);
|
|
45
|
+
}
|
|
46
|
+
/** Today as `YYYY-MM-DD` in local time, like `date +%F`. */
|
|
47
|
+
export function today(now = new Date()) {
|
|
48
|
+
const pad = (n) => String(n).padStart(2, '0');
|
|
49
|
+
return `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}`;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=bookkeeping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bookkeeping.js","sourceRoot":"","sources":["../src/bookkeeping.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Context } from './context.ts';
|
|
2
|
+
import type { Declaration } from './marker.ts';
|
|
3
|
+
import type { Directory } from './model.ts';
|
|
4
|
+
export interface Site {
|
|
5
|
+
path: string;
|
|
6
|
+
/** Relative to the workspace. */
|
|
7
|
+
rel: string;
|
|
8
|
+
/** The preset the site is generated from, e.g. `preset-repo-web`. */
|
|
9
|
+
preset: string;
|
|
10
|
+
}
|
|
11
|
+
export interface Consumer {
|
|
12
|
+
path: string;
|
|
13
|
+
rel: string;
|
|
14
|
+
branch: string;
|
|
15
|
+
expected?: 'main' | 'develop';
|
|
16
|
+
/** Why the consumer is left untouched this run, if it is. */
|
|
17
|
+
skipped?: string;
|
|
18
|
+
/** Its sites in tree order: the repo root before its apps. */
|
|
19
|
+
sites: Site[];
|
|
20
|
+
}
|
|
21
|
+
/** The branch a consumer must be on for an update to touch it; undefined when the marker says neither. */
|
|
22
|
+
export declare function expectedBranch(declaration?: Declaration): Consumer['expected'];
|
|
23
|
+
/** The template source copier records for a preset of the upstream organisation. */
|
|
24
|
+
export declare const presetSource: (preset: string) => string;
|
|
25
|
+
/**
|
|
26
|
+
* The consumers under a scanned workspace (`overview` with git facets), for
|
|
27
|
+
* the given presets. A site inside a template directory is the template's own
|
|
28
|
+
* and never a consumer; a site outside any git repo is reported, not updated.
|
|
29
|
+
*/
|
|
30
|
+
export declare function findConsumers(ctx: Context, root: Directory, presets: readonly string[]): Promise<Consumer[]>;
|
|
31
|
+
//# sourceMappingURL=consumers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumers.d.ts","sourceRoot":"","sources":["../src/consumers.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED,0GAA0G;AAC1G,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,CAK9E;AAED,oFAAoF;AACpF,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAAkC,CAAC;AAEjF;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAyClH"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// The consumers of the presets: every copier-managed site in a workspace
|
|
2
|
+
// (tenant repo roots and their apps/*) and the repo each belongs to, with the
|
|
3
|
+
// rule that protects a consumer from an update it did not ask for: a repo is
|
|
4
|
+
// touched only on its expected branch and with no tracked modifications;
|
|
5
|
+
// untracked files do not block. The expected branch is read from the repo's
|
|
6
|
+
// marker (§ 1.4 PLX): a platform repo (declares PLX-Platform) rides main, an
|
|
7
|
+
// app repo (declares PLX-Repo) rides develop.
|
|
8
|
+
import { relative } from 'node:path';
|
|
9
|
+
/** The branch a consumer must be on for an update to touch it; undefined when the marker says neither. */
|
|
10
|
+
export function expectedBranch(declaration) {
|
|
11
|
+
if (!declaration)
|
|
12
|
+
return undefined;
|
|
13
|
+
if (declaration.modules.includes('PLX-Platform'))
|
|
14
|
+
return 'main';
|
|
15
|
+
if (declaration.modules.includes('PLX-Repo'))
|
|
16
|
+
return 'develop';
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
/** The template source copier records for a preset of the upstream organisation. */
|
|
20
|
+
export const presetSource = (preset) => `gh:plexus-ms/${preset}`;
|
|
21
|
+
/**
|
|
22
|
+
* The consumers under a scanned workspace (`overview` with git facets), for
|
|
23
|
+
* the given presets. A site inside a template directory is the template's own
|
|
24
|
+
* and never a consumer; a site outside any git repo is reported, not updated.
|
|
25
|
+
*/
|
|
26
|
+
export async function findConsumers(ctx, root, presets) {
|
|
27
|
+
const sources = new Map(presets.map((p) => [presetSource(p), p]));
|
|
28
|
+
const consumers = new Map();
|
|
29
|
+
const orphans = [];
|
|
30
|
+
const visit = (dir, repo, inTemplate) => {
|
|
31
|
+
const here = dir.git ? dir : repo;
|
|
32
|
+
const template = inTemplate || Boolean(dir.template);
|
|
33
|
+
const preset = dir.copier?.src ? sources.get(dir.copier.src) : undefined;
|
|
34
|
+
if (preset && !template) {
|
|
35
|
+
const site = { path: dir.path, rel: relative(root.path, dir.path) || '.', preset };
|
|
36
|
+
if (!here)
|
|
37
|
+
orphans.push(site);
|
|
38
|
+
else {
|
|
39
|
+
let consumer = consumers.get(here.path);
|
|
40
|
+
if (!consumer) {
|
|
41
|
+
consumer = {
|
|
42
|
+
path: here.path,
|
|
43
|
+
rel: relative(root.path, here.path) || '.',
|
|
44
|
+
branch: here.git?.branch ?? '?',
|
|
45
|
+
expected: expectedBranch(here.declaration),
|
|
46
|
+
sites: [],
|
|
47
|
+
};
|
|
48
|
+
consumers.set(here.path, consumer);
|
|
49
|
+
}
|
|
50
|
+
consumer.sites.push(site);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
for (const child of dir.children)
|
|
54
|
+
visit(child, here, template);
|
|
55
|
+
};
|
|
56
|
+
visit(root, undefined, false);
|
|
57
|
+
for (const site of orphans)
|
|
58
|
+
ctx.say(`⚠ ${site.rel}: not inside a git repo — skipped`);
|
|
59
|
+
for (const c of consumers.values()) {
|
|
60
|
+
if (c.expected && c.branch !== c.expected) {
|
|
61
|
+
c.skipped = `on '${c.branch}', expected '${c.expected}'`;
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const tracked = (await ctx.read('git', ['status', '--porcelain', '--untracked-files=no'], { cwd: c.path })).trim();
|
|
65
|
+
if (tracked !== '')
|
|
66
|
+
c.skipped = 'has uncommitted changes';
|
|
67
|
+
}
|
|
68
|
+
return [...consumers.values()];
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=consumers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumers.js","sourceRoot":"","sources":["../src/consumers.ts"],"names":[],"mappings":"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"}
|
package/dist/context.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type DirEntry, type ExecOptions, type Io } from './io.ts';
|
|
2
|
-
import { type Plan } from './plan.ts';
|
|
2
|
+
import { type Plan, type Step } from './plan.ts';
|
|
3
3
|
export interface Options {
|
|
4
4
|
dryRun?: boolean;
|
|
5
5
|
/** 0: every effect; 1: reads and inputs too; 2: subprocess output too. */
|
|
@@ -36,6 +36,12 @@ export declare class Context {
|
|
|
36
36
|
confirm(question: string): Promise<boolean>;
|
|
37
37
|
/** Narrate and perform each step in order; the first failure stops the run. */
|
|
38
38
|
apply(plan: Plan): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Perform a step on scratch state, whatever the mode: the one exception to
|
|
41
|
+
* "a dry run performs no effect", for a preview that has to run a tool
|
|
42
|
+
* against a throwaway copy to be honest. Resolves with the output of a run.
|
|
43
|
+
*/
|
|
44
|
+
stage(step: Step): Promise<string | undefined>;
|
|
39
45
|
private perform;
|
|
40
46
|
}
|
|
41
47
|
//# sourceMappingURL=context.d.ts.map
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"
|
|
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;IAOlE,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"}
|
package/dist/context.js
CHANGED
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
// read look at the world; always performed, so a dry run sees real state
|
|
5
5
|
// apply perform a Plan (plan.ts); every step is narrated with its exact
|
|
6
6
|
// shell line, and performed unless --dry-run
|
|
7
|
+
// stage perform a step on scratch state the run owns (a preview clone, a
|
|
8
|
+
// temporary directory): narrated as a read, performed even under
|
|
9
|
+
// --dry-run, because nothing the operator owns changes
|
|
7
10
|
// result print the command's product: human-readable, or JSON under --json
|
|
8
11
|
//
|
|
9
12
|
// Plan, then confirm, then apply: validation and every read happen while
|
|
@@ -86,15 +89,28 @@ export class Context {
|
|
|
86
89
|
await this.perform(step);
|
|
87
90
|
}
|
|
88
91
|
}
|
|
89
|
-
|
|
90
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Perform a step on scratch state, whatever the mode: the one exception to
|
|
94
|
+
* "a dry run performs no effect", for a preview that has to run a tool
|
|
95
|
+
* against a throwaway copy to be honest. Resolves with the output of a run.
|
|
96
|
+
*/
|
|
97
|
+
stage(step) {
|
|
98
|
+
this.say(`? ${describe(step)}`, 1);
|
|
99
|
+
const input = body(step);
|
|
100
|
+
if (input !== undefined)
|
|
101
|
+
this.say(indent(input), 2);
|
|
102
|
+
return this.perform(step);
|
|
103
|
+
}
|
|
104
|
+
async perform(step) {
|
|
105
|
+
const inherit = this.verbose >= 2 || (step.kind === 'run' && step.interactive === true);
|
|
91
106
|
switch (step.kind) {
|
|
92
107
|
case 'run':
|
|
93
108
|
return this.io.exec(step.command, step.args, { cwd: step.cwd, input: step.input, inherit });
|
|
94
109
|
case 'ssh':
|
|
95
110
|
return this.io.exec('ssh', [step.host, 'bash', '-s'], { input: step.script, inherit });
|
|
96
111
|
case 'write':
|
|
97
|
-
|
|
112
|
+
await this.io.writeFile(step.path, step.content);
|
|
113
|
+
return undefined;
|
|
98
114
|
}
|
|
99
115
|
}
|
|
100
116
|
}
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface SetFieldOptions {
|
|
2
|
+
/** When the field is absent, insert it after this key; at the end of the frontmatter otherwise. */
|
|
3
|
+
after?: string;
|
|
4
|
+
}
|
|
5
|
+
/** The page with `key: value` set in its frontmatter; the same text when already so. */
|
|
6
|
+
export declare function setFrontmatterField(text: string, key: string, value: string, options?: SetFieldOptions): string;
|
|
7
|
+
/** The value of a frontmatter field as written, trimmed; undefined when absent. */
|
|
8
|
+
export declare function frontmatterField(text: string, key: string): string | undefined;
|
|
9
|
+
//# sourceMappingURL=frontmatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,eAAe;IAC9B,mGAAmG;IACnG,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,MAAM,CAgBnH;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM9E"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// Line-based edits of a page's YAML frontmatter: the marker's `plexus`, the
|
|
2
|
+
// map's `version` and `timestamp`, a module's `changed`. Pages are authored by
|
|
3
|
+
// hand, so an edit replaces or inserts one line and leaves everything else,
|
|
4
|
+
// comments and order included, exactly as written; re-serialising the YAML
|
|
5
|
+
// would not. Reading frontmatter is marker.ts's `splitFrontmatter`.
|
|
6
|
+
/** The index range of the frontmatter's inner lines, or undefined when the page has none. */
|
|
7
|
+
function frontmatterLines(lines) {
|
|
8
|
+
if (lines[0] !== '---')
|
|
9
|
+
return undefined;
|
|
10
|
+
const end = lines.findIndex((l, i) => i > 0 && l === '---');
|
|
11
|
+
return end === -1 ? undefined : { start: 1, end };
|
|
12
|
+
}
|
|
13
|
+
/** The page with `key: value` set in its frontmatter; the same text when already so. */
|
|
14
|
+
export function setFrontmatterField(text, key, value, options = {}) {
|
|
15
|
+
const lines = text.split('\n');
|
|
16
|
+
const fm = frontmatterLines(lines);
|
|
17
|
+
if (!fm)
|
|
18
|
+
throw new Error('no frontmatter: expected a `---` block at the top');
|
|
19
|
+
const line = `${key}: ${value}`;
|
|
20
|
+
const isKey = (l) => l.startsWith(`${key}:`);
|
|
21
|
+
const existing = lines.findIndex((l, i) => i >= fm.start && i < fm.end && isKey(l));
|
|
22
|
+
if (existing !== -1) {
|
|
23
|
+
lines[existing] = line;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const anchor = options.after
|
|
27
|
+
? lines.findIndex((l, i) => i >= fm.start && i < fm.end && l.startsWith(`${options.after}:`))
|
|
28
|
+
: -1;
|
|
29
|
+
lines.splice(anchor === -1 ? fm.end : anchor + 1, 0, line);
|
|
30
|
+
}
|
|
31
|
+
return lines.join('\n');
|
|
32
|
+
}
|
|
33
|
+
/** The value of a frontmatter field as written, trimmed; undefined when absent. */
|
|
34
|
+
export function frontmatterField(text, key) {
|
|
35
|
+
const lines = text.split('\n');
|
|
36
|
+
const fm = frontmatterLines(lines);
|
|
37
|
+
if (!fm)
|
|
38
|
+
return undefined;
|
|
39
|
+
const line = lines.slice(fm.start, fm.end).find((l) => l.startsWith(`${key}:`));
|
|
40
|
+
return line?.slice(key.length + 1).trim();
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=frontmatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,4EAA4E;AAC5E,2EAA2E;AAC3E,oEAAoE;AAEpE,6FAA6F;AAC7F,SAAS,gBAAgB,CAAC,KAAe;IACvC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;IAC5D,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;AACpD,CAAC;AAOD,wFAAwF;AACxF,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,UAA2B,EAAE;IACzG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IAC9E,MAAM,IAAI,GAAG,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK;YAC1B,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;YAC7F,CAAC,CAAC,CAAC,CAAC,CAAC;QACP,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,GAAW;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;IAChF,OAAO,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
export { bumpCollectionPin, bumpGalaxyVersion, bumpWorkflowRefs, hasConflictMarkers, hasUnmergedEntries, stampChanged, stampStandard, syncMarker, today, } from './bookkeeping.ts';
|
|
1
2
|
export { CATALOG_DIRS, type Catalog, type Module, parseModule, readCatalog } from './catalog.ts';
|
|
3
|
+
export { type Consumer, expectedBranch, findConsumers, presetSource, type Site } from './consumers.ts';
|
|
2
4
|
export { Context, type Options } from './context.ts';
|
|
3
5
|
export { ANSWERS_FILE, type Answers, parseAnswers, TEMPLATE_FILES } from './copier.ts';
|
|
4
6
|
export { compareTrains, type Diagnosis, diagnose, type Report } from './doctor.ts';
|
|
7
|
+
export { frontmatterField, setFrontmatterField } from './frontmatter.ts';
|
|
5
8
|
export { type DirEntry, ExecError, type ExecOptions, type Io, realIo, render } from './io.ts';
|
|
6
9
|
export { type Declaration, MARKER_FILE, parseMarker, splitFrontmatter } from './marker.ts';
|
|
7
10
|
export { type Directory, type GitFacet, isNotable, type Kind, kindOf, shortRemote, type TemplateFacet, } from './model.ts';
|
|
8
11
|
export { overview, PRUNED, type ScanOptions } from './overview.ts';
|
|
9
12
|
export { body, describe, type Plan, run, type Step, ssh, write } from './plan.ts';
|
|
13
|
+
export { isClean, propagate, type Summary } from './propagate.ts';
|
|
14
|
+
export { type CompendiumCheck, checkCompendium, extractRequirements, MAP_PAGE, modulePages, type PageMode, type Scan, scanPage, } from './requirements.ts';
|
|
15
|
+
export { type ShipOptions, type ShipResult, ship } from './ship.ts';
|
|
16
|
+
export { isTrainVersion, latestTag, nextMinor, preflightRelease, readTrain, resolveVersion, TRAIN_REPOS, type Train, type TrainRepo, UPSTREAM, UsageError, } from './train.ts';
|
|
10
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACjG,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,aAAa,EAAE,KAAK,SAAS,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACnF,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"}
|
|
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,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,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"}
|
package/dist/index.js
CHANGED
|
@@ -6,13 +6,20 @@
|
|
|
6
6
|
// package is an adapter that maps argv onto this. The parsers of Plexus's own
|
|
7
7
|
// file shapes (marker.ts, copier.ts) live here, once, for every verb.
|
|
8
8
|
// Conventions: compendium/miscellaneous/cli-design.md.
|
|
9
|
+
export { bumpCollectionPin, bumpGalaxyVersion, bumpWorkflowRefs, hasConflictMarkers, hasUnmergedEntries, stampChanged, stampStandard, syncMarker, today, } from "./bookkeeping.js";
|
|
9
10
|
export { CATALOG_DIRS, parseModule, readCatalog } from "./catalog.js";
|
|
11
|
+
export { expectedBranch, findConsumers, presetSource } from "./consumers.js";
|
|
10
12
|
export { Context } from "./context.js";
|
|
11
13
|
export { ANSWERS_FILE, parseAnswers, TEMPLATE_FILES } from "./copier.js";
|
|
12
14
|
export { compareTrains, diagnose } from "./doctor.js";
|
|
15
|
+
export { frontmatterField, setFrontmatterField } from "./frontmatter.js";
|
|
13
16
|
export { ExecError, realIo, render } from "./io.js";
|
|
14
17
|
export { MARKER_FILE, parseMarker, splitFrontmatter } from "./marker.js";
|
|
15
18
|
export { isNotable, kindOf, shortRemote, } from "./model.js";
|
|
16
19
|
export { overview, PRUNED } from "./overview.js";
|
|
17
20
|
export { body, describe, run, ssh, write } from "./plan.js";
|
|
21
|
+
export { isClean, propagate } from "./propagate.js";
|
|
22
|
+
export { checkCompendium, extractRequirements, MAP_PAGE, modulePages, scanPage, } from "./requirements.js";
|
|
23
|
+
export { ship } from "./ship.js";
|
|
24
|
+
export { isTrainVersion, latestTag, nextMinor, preflightRelease, readTrain, resolveVersion, TRAIN_REPOS, UPSTREAM, UsageError, } from "./train.js";
|
|
18
25
|
//# sourceMappingURL=index.js.map
|
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,EAAE,YAAY,EAA6B,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAgB,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,aAAa,EAAkB,QAAQ,EAAe,MAAM,aAAa,CAAC;AACnF,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"}
|
|
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,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,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"}
|
package/dist/io.d.ts
CHANGED
|
@@ -4,7 +4,12 @@ export interface ExecOptions {
|
|
|
4
4
|
env?: NodeJS.ProcessEnv;
|
|
5
5
|
/** Fed to the process's stdin, then closed. */
|
|
6
6
|
input?: string;
|
|
7
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Pass the process's output through to the terminal instead of capturing it,
|
|
9
|
+
* and, when nothing is fed in, its input too: a program that asks questions
|
|
10
|
+
* (copier) gets to ask them. Both of its streams go to stderr: stdout is the
|
|
11
|
+
* verb's result and stays clean for `--json` and pipes.
|
|
12
|
+
*/
|
|
8
13
|
inherit?: boolean;
|
|
9
14
|
}
|
|
10
15
|
export interface Io {
|
package/dist/io.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf
|
|
1
|
+
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,EAAE;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,qGAAqG;IACrG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,0DAA0D;IAC1D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM;CAMjE;AAED,yDAAyD;AACzD,eAAO,MAAM,aAAa,QAAO,OAAwE,CAAC;AAE1G,wBAAgB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAqChD;AAED,sFAAsF;AACtF,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAE9D"}
|
package/dist/io.js
CHANGED
|
@@ -25,7 +25,11 @@ export function realIo(prompt) {
|
|
|
25
25
|
const child = spawn(command, args, {
|
|
26
26
|
cwd: options.cwd,
|
|
27
27
|
env: options.env,
|
|
28
|
-
stdio: [
|
|
28
|
+
stdio: [
|
|
29
|
+
options.input !== undefined ? 'pipe' : options.inherit ? 'inherit' : 'ignore',
|
|
30
|
+
options.inherit ? process.stderr.fd : 'pipe',
|
|
31
|
+
'pipe',
|
|
32
|
+
],
|
|
29
33
|
});
|
|
30
34
|
let stdout = '';
|
|
31
35
|
let stderr = '';
|
package/dist/io.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"io.js","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAC5E,sEAAsE;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"io.js","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"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"}
|
package/dist/plan.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export type Step = {
|
|
|
4
4
|
args: string[];
|
|
5
5
|
cwd?: string;
|
|
6
6
|
input?: string;
|
|
7
|
+
interactive?: boolean;
|
|
7
8
|
} | {
|
|
8
9
|
kind: 'ssh';
|
|
9
10
|
host: string;
|
|
@@ -17,6 +18,7 @@ export type Plan = Step[];
|
|
|
17
18
|
export declare const run: (command: string, args?: string[], options?: {
|
|
18
19
|
cwd?: string;
|
|
19
20
|
input?: string;
|
|
21
|
+
interactive?: boolean;
|
|
20
22
|
}) => Step;
|
|
21
23
|
/** Feed a bash script to a host: the remote half of a verb stays bash, carried verbatim. */
|
|
22
24
|
export declare const ssh: (host: string, script: string) => Step;
|
package/dist/plan.d.ts.map
CHANGED
|
@@ -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,CAAA;CAAE,
|
|
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"}
|
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,
|
|
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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Context } from './context.ts';
|
|
2
|
+
export interface Summary {
|
|
3
|
+
train: string;
|
|
4
|
+
/** True for a dry run: nothing in the workspace changed. */
|
|
5
|
+
preview: boolean;
|
|
6
|
+
/** Sites, relative to the workspace. */
|
|
7
|
+
clean: string[];
|
|
8
|
+
conflicted: string[];
|
|
9
|
+
/** Sites whose update exited nonzero, and lockfiles that failed to refresh. */
|
|
10
|
+
failed: string[];
|
|
11
|
+
/** Consumers left untouched, with the reason. */
|
|
12
|
+
skipped: {
|
|
13
|
+
path: string;
|
|
14
|
+
reason: string;
|
|
15
|
+
}[];
|
|
16
|
+
}
|
|
17
|
+
/** True when nothing in the summary needs a human. */
|
|
18
|
+
export declare const isClean: (s: Summary) => boolean;
|
|
19
|
+
export declare function propagate(ctx: Context, workspace: string, train: string): Promise<Summary>;
|
|
20
|
+
//# sourceMappingURL=propagate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"propagate.d.ts","sourceRoot":"","sources":["../src/propagate.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAO5C,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iDAAiD;IACjD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7C;AAED,sDAAsD;AACtD,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,OACyC,CAAC;AAI/E,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAoEhG"}
|