@codemarc/blt 1.8.4 → 1.8.5
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/README.md +15 -5
- package/dist/blt +2 -2
- package/dist/blt.js.map +1 -1
- package/dist/commands/app/data.d.ts +6 -0
- package/dist/commands/app/data.d.ts.map +1 -1
- package/dist/commands/app/data.js +5 -0
- package/dist/commands/app/data.js.map +1 -1
- package/dist/commands/app/env-check.d.ts +0 -3
- package/dist/commands/app/env-check.d.ts.map +1 -1
- package/dist/commands/app/env-check.js +0 -7
- package/dist/commands/app/env-check.js.map +1 -1
- package/dist/commands/app/env-decrypt.d.ts +9 -0
- package/dist/commands/app/env-decrypt.d.ts.map +1 -0
- package/dist/commands/app/env-decrypt.js +37 -0
- package/dist/commands/app/env-decrypt.js.map +1 -0
- package/dist/commands/app/pos.d.ts +2 -1
- package/dist/commands/app/pos.d.ts.map +1 -1
- package/dist/commands/app/pos.js +35 -40
- package/dist/commands/app/pos.js.map +1 -1
- package/dist/commands/app/site-env.d.ts +12 -0
- package/dist/commands/app/site-env.d.ts.map +1 -0
- package/dist/commands/app/site-env.js +53 -0
- package/dist/commands/app/site-env.js.map +1 -0
- package/dist/commands/app.d.ts.map +1 -1
- package/dist/commands/app.js +36 -10
- package/dist/commands/app.js.map +1 -1
- package/dist/commands/env/get.d.ts.map +1 -1
- package/dist/commands/env/get.js +3 -31
- package/dist/commands/env/get.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -429,15 +429,16 @@ blt deploy sql ./migrations/001_init.sql
|
|
|
429
429
|
|
|
430
430
|
The `app` namespace wraps developer on-demand workflows for BLT test environments.
|
|
431
431
|
|
|
432
|
-
### `blt app pos --branch <branch> --env <env>
|
|
432
|
+
### `blt app pos <target> [--branch <branch>] [--env <env>]`
|
|
433
433
|
|
|
434
|
-
Build and deploy POS to a configured test target.
|
|
434
|
+
Build and deploy POS to a configured test target. Uses `deploy/sites/<target>.bltcore.com` and the site env bundle (`BLT_ENV_NAME` from `.trailz/env/env.<name>.bin`). Writes `app/.dm.env` from the same bundle, renders nginx templates when present, then deploys via SSH/SCP.
|
|
435
435
|
|
|
436
436
|
```bash
|
|
437
|
-
blt app pos --branch laf-test
|
|
437
|
+
blt app pos test1 --branch laf-test
|
|
438
|
+
./regen.sh # same flow from deploy/sites/test1.bltcore.com (default branch laf-test)
|
|
438
439
|
```
|
|
439
440
|
|
|
440
|
-
|
|
441
|
+
`--env` is optional when it matches `BLT_ENV_NAME` in the site bundle. `--branch` defaults to `laf-test`.
|
|
441
442
|
|
|
442
443
|
### `blt app data refresh --from <source-env> --to <target-env>`
|
|
443
444
|
|
|
@@ -447,7 +448,16 @@ Pull a data snapshot from one environment and apply it to another.
|
|
|
447
448
|
blt app data refresh --from laf --to test-laf
|
|
448
449
|
```
|
|
449
450
|
|
|
450
|
-
This command uses `.trailz/env/env.<name>.bin` bundles in the **current working directory** (for example a deploy site checkout) and the existing `blt data pull` / `blt data apply` implementation. Snapshots default to `<cwd>/snapshots/` in **toon** format (override with `--out` / `--format`).
|
|
451
|
+
This command uses `.trailz/env/env.<name>.bin` bundles in the **current working directory** (for example a deploy site checkout) and the existing `blt data pull` / `blt data apply` implementation. Snapshots default to `<cwd>/data-snapshots/` in **toon** format (override with `--out` / `--format`).
|
|
452
|
+
|
|
453
|
+
### `blt app data remove <instance>`
|
|
454
|
+
|
|
455
|
+
Delete all stamped snapshot runs for an instance under the snapshot base (default `<cwd>/data-snapshots/<instance>/`). No env bundle required.
|
|
456
|
+
|
|
457
|
+
```bash
|
|
458
|
+
blt app data remove laf
|
|
459
|
+
blt app data remove laf --dry-run
|
|
460
|
+
```
|
|
451
461
|
|
|
452
462
|
---
|
|
453
463
|
|
package/dist/blt
CHANGED
|
@@ -4,7 +4,7 @@ import appCommand from "./commands/app";
|
|
|
4
4
|
import bucketCommand from "./commands/bucket";
|
|
5
5
|
import buildCommand from "./commands/build";
|
|
6
6
|
import cleanupCommand from "./commands/cleanup";
|
|
7
|
-
import dataCommand from "./commands/data";
|
|
7
|
+
// import dataCommand from "./commands/data";
|
|
8
8
|
import deployCommand from "./commands/deploy";
|
|
9
9
|
import envCommand from "./commands/env";
|
|
10
10
|
import imageCommand from "./commands/image";
|
|
@@ -33,7 +33,7 @@ appCommand(program);
|
|
|
33
33
|
bucketCommand(program);
|
|
34
34
|
buildCommand(program);
|
|
35
35
|
cleanupCommand(program);
|
|
36
|
-
dataCommand(program);
|
|
36
|
+
// dataCommand(program);
|
|
37
37
|
deployCommand(program);
|
|
38
38
|
envCommand(program);
|
|
39
39
|
imageCommand(program);
|
package/dist/blt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blt.js","sourceRoot":"","sources":["../src/blt.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,
|
|
1
|
+
{"version":3,"file":"blt.js","sourceRoot":"","sources":["../src/blt.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,6CAA6C;AAC7C,OAAO,aAAa,MAAM,mBAAmB,CAAC;AAC9C,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAG,IAAI,EAAE,cAAc,CAAC,CAAC;AAE/D,MAAM,UAAU,iBAAiB;IAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,OAAO,WAAW,CAAC,OAAO,CAAC;AAC7B,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;KACjB,OAAO,CAAC,iBAAiB,EAAE,CAAC;KAC5B,WAAW,CAAC,cAAc,CAAC,CAAC;AAE5B,UAAU,CAAC,OAAO,CAAC,CAAC;AACpB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,wBAAwB;AACxB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,UAAU,CAAC,OAAO,CAAC,CAAC;AACpB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,WAAW,CAAC,OAAO,CAAC,CAAC;AACrB,UAAU,CAAC,OAAO,CAAC,CAAC;AACpB,WAAW,CAAC,OAAO,CAAC,CAAC;AACrB,WAAW,CAAC,OAAO,CAAC,CAAC;AACrB,eAAe,CAAC,OAAO,CAAC,CAAC;AACzB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,UAAU,CAAC,OAAO,CAAC,CAAC;AACpB,eAAe,CAAC,OAAO,CAAC,CAAC;AAE3B,uCAAuC;AACvC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,CAAC;AACD,OAAO,CAAC,GAAG,EAAE,CAAC"}
|
|
@@ -22,8 +22,14 @@ export type AppDataRefreshOptions = {
|
|
|
22
22
|
out: string;
|
|
23
23
|
format: DataFormat;
|
|
24
24
|
};
|
|
25
|
+
export type AppDataRemoveOptions = {
|
|
26
|
+
instance: string;
|
|
27
|
+
out: string;
|
|
28
|
+
dryRun: boolean;
|
|
29
|
+
};
|
|
25
30
|
export declare function appDataPull(opts: AppDataPullOptions, logger: Logger): Promise<void>;
|
|
26
31
|
export declare function appDataApply(opts: AppDataApplyOptions, logger: Logger): Promise<void>;
|
|
27
32
|
export declare function appDataRefresh(opts: AppDataRefreshOptions, logger: Logger): Promise<void>;
|
|
33
|
+
export declare function appDataRemove(opts: AppDataRemoveOptions, logger: Logger): void;
|
|
28
34
|
export {};
|
|
29
35
|
//# sourceMappingURL=data.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/commands/app/data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/commands/app/data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAQ5C,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3C,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAErD,eAAO,MAAM,uBAAuB,EAAE,UAAmB,CAAC;AAE1D,6EAA6E;AAC7E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,SAAgB,GAAG,MAAM,CAE3F;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAsBF,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBzF;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB3F;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAG9E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isAbsolute, resolve } from "node:path";
|
|
2
2
|
import { dataPull } from "../data/pull";
|
|
3
3
|
import { dataApply } from "../data/apply";
|
|
4
|
+
import { dataRemove } from "../data/remove";
|
|
4
5
|
import { resolveLatestSnapshot } from "../data/helpers";
|
|
5
6
|
import { ensureAppEnv, parseDotEnvContent, trailzEnvBasePath } from "./env-check";
|
|
6
7
|
import { readCommand } from "./shell";
|
|
@@ -67,4 +68,8 @@ export async function appDataRefresh(opts, logger) {
|
|
|
67
68
|
await appDataPull({ env: opts.from, out: opts.out, format: opts.format }, logger);
|
|
68
69
|
await appDataApply({ env: opts.to, snapshotDir: "latest", out: opts.out, dryRun: false }, logger);
|
|
69
70
|
}
|
|
71
|
+
export function appDataRemove(opts, logger) {
|
|
72
|
+
const outDir = resolveAppSnapshotOutDir(opts.out, process.cwd());
|
|
73
|
+
dataRemove(opts.instance, { outBaseDir: outDir, dryRun: opts.dryRun }, logger);
|
|
74
|
+
}
|
|
70
75
|
//# sourceMappingURL=data.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/commands/app/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAItC,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAErD,MAAM,CAAC,MAAM,uBAAuB,GAAe,MAAM,CAAC;AAE1D,6EAA6E;AAC7E,MAAM,UAAU,wBAAwB,CAAC,GAAW,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;IAClF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC;
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/commands/app/data.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,9 +24,6 @@ export declare function resolveTrailzEnvPaths(cwd: string, envName: string): {
|
|
|
24
24
|
} | null;
|
|
25
25
|
/** Names with a trailz ciphertext bundle in `cwd/.trailz/env/` (sorted). */
|
|
26
26
|
export declare function listTrailzEnvNames(cwd?: string): string[];
|
|
27
|
-
/** Device-manager bundle name paired with a site env (e.g. test1 → test1-dm). */
|
|
28
|
-
export declare function siteDmEnvName(siteEnvName: string): string;
|
|
29
|
-
export declare function appDmEnvPath(cwd: string): string;
|
|
30
27
|
export declare function dotEnvPathFor(cwd: string): string;
|
|
31
28
|
/** Parse `BLT_ENV_NAME` or `# from .trailz/env/env.<name>.bin` from a `.env` body. */
|
|
32
29
|
export declare function parseEnvNameFromDotEnv(content: string): string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-check.d.ts","sourceRoot":"","sources":["../../../src/commands/app/env-check.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,QAA2E,CAAC;AAE5G,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,QACoC,CAAC;AAM5E,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,eAAe,CAAC;AAE5D,MAAM,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,gHAAgH;AAChH,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACb;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAcjD;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,EAAE,CAoBxE;AAED,
|
|
1
|
+
{"version":3,"file":"env-check.d.ts","sourceRoot":"","sources":["../../../src/commands/app/env-check.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,4EAA4E;AAC5E,eAAO,MAAM,mBAAmB,QAA2E,CAAC;AAE5G,2FAA2F;AAC3F,eAAO,MAAM,0BAA0B,QACoC,CAAC;AAM5E,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,eAAe,CAAC;AAE5D,MAAM,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9E;AAED,gHAAgH;AAChH,wBAAgB,qBAAqB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACb;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAcjD;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,EAAE,CAoBxE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAarE;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI9E;AAED,mEAAmE;AACnE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI9F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBxD;AAED,wBAAgB,kBAAkB,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,MAAM,CAAC,UAAwB,EACxC,MAAM,UAAO,GACX,MAAM,CAAC,UAAU,CAInB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,kBAAkB,CAuDrB"}
|
|
@@ -57,13 +57,6 @@ export function listTrailzEnvNames(cwd = process.cwd()) {
|
|
|
57
57
|
}
|
|
58
58
|
return [...names].sort();
|
|
59
59
|
}
|
|
60
|
-
/** Device-manager bundle name paired with a site env (e.g. test1 → test1-dm). */
|
|
61
|
-
export function siteDmEnvName(siteEnvName) {
|
|
62
|
-
return `${siteEnvName}-dm`;
|
|
63
|
-
}
|
|
64
|
-
export function appDmEnvPath(cwd) {
|
|
65
|
-
return join(cwd, "app", ".dm.env");
|
|
66
|
-
}
|
|
67
60
|
export function dotEnvPathFor(cwd) {
|
|
68
61
|
return join(cwd, ".env");
|
|
69
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-check.js","sourceRoot":"","sources":["../../../src/commands/app/env-check.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"env-check.js","sourceRoot":"","sources":["../../../src/commands/app/env-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Resolve smash CLI (local node_modules or bunx fallback). */
|
|
2
|
+
export declare function resolveSmashCommand(cwd: string): string[];
|
|
3
|
+
export type DecryptTrailzEnvOptions = {
|
|
4
|
+
cwd?: string;
|
|
5
|
+
expand?: boolean;
|
|
6
|
+
};
|
|
7
|
+
/** Decrypt a trailz env bundle (`smash -n <basePath>`) and optionally expand `$VAR` references. */
|
|
8
|
+
export declare function decryptTrailzEnvBase(basePath: string, options?: DecryptTrailzEnvOptions): string;
|
|
9
|
+
//# sourceMappingURL=env-decrypt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-decrypt.d.ts","sourceRoot":"","sources":["../../../src/commands/app/env-decrypt.ts"],"names":[],"mappings":"AAKA,+DAA+D;AAC/D,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAUzD;AAED,MAAM,MAAM,uBAAuB,GAAG;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,mGAAmG;AACnG,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,uBAA4B,GACnC,MAAM,CAuBR"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { expandDotEnvBody } from "./env-check";
|
|
5
|
+
/** Resolve smash CLI (local node_modules or bunx fallback). */
|
|
6
|
+
export function resolveSmashCommand(cwd) {
|
|
7
|
+
const binSmash = join(cwd, "node_modules", ".bin", "smash");
|
|
8
|
+
const script = join(cwd, "node_modules", "@codemarc", "smashdata", "smash");
|
|
9
|
+
if (existsSync(binSmash)) {
|
|
10
|
+
return [binSmash];
|
|
11
|
+
}
|
|
12
|
+
if (existsSync(script)) {
|
|
13
|
+
return ["node", script];
|
|
14
|
+
}
|
|
15
|
+
return ["bunx", "@codemarc/smashdata"];
|
|
16
|
+
}
|
|
17
|
+
/** Decrypt a trailz env bundle (`smash -n <basePath>`) and optionally expand `$VAR` references. */
|
|
18
|
+
export function decryptTrailzEnvBase(basePath, options = {}) {
|
|
19
|
+
const cwd = options.cwd ?? process.cwd();
|
|
20
|
+
const expand = options.expand ?? true;
|
|
21
|
+
const smashCmd = resolveSmashCommand(cwd);
|
|
22
|
+
const [command, ...commandArgs] = smashCmd;
|
|
23
|
+
const result = spawnSync(command, [...commandArgs, "-n", basePath], {
|
|
24
|
+
cwd,
|
|
25
|
+
env: process.env,
|
|
26
|
+
encoding: "utf8",
|
|
27
|
+
});
|
|
28
|
+
if (result.error) {
|
|
29
|
+
throw result.error;
|
|
30
|
+
}
|
|
31
|
+
if ((result.status ?? 0) !== 0) {
|
|
32
|
+
throw new Error(`smash -n ${basePath} failed${result.stderr ? `: ${result.stderr.trim()}` : ""}`);
|
|
33
|
+
}
|
|
34
|
+
const decrypted = (result.stdout ?? "").replace(/^\uFEFF/, "").trimStart();
|
|
35
|
+
return expand ? expandDotEnvBody(decrypted) : decrypted;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=env-decrypt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-decrypt.js","sourceRoot":"","sources":["../../../src/commands/app/env-decrypt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,+DAA+D;AAC/D,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC5E,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AACxC,CAAC;AAOD,mGAAmG;AACnG,MAAM,UAAU,oBAAoB,CACnC,QAAgB,EAChB,UAAmC,EAAE;IAErC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,GAAG,QAAQ,CAAC;IAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;QACnE,GAAG;QACH,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,QAAQ,EAAE,MAAM;KAChB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,MAAM,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACd,YAAY,QAAQ,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAChF,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3E,OAAO,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { Logger } from "@caporal/core";
|
|
2
|
+
export declare const DEFAULT_POS_BRANCH = "laf-test";
|
|
2
3
|
export type DeployPosAppOptions = {
|
|
3
4
|
target: string;
|
|
4
5
|
branch: string;
|
|
5
|
-
env
|
|
6
|
+
env?: string;
|
|
6
7
|
};
|
|
7
8
|
export declare function deployPosApp(opts: DeployPosAppOptions, logger: Logger): Promise<void>;
|
|
8
9
|
//# sourceMappingURL=pos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pos.d.ts","sourceRoot":"","sources":["../../../src/commands/app/pos.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"pos.d.ts","sourceRoot":"","sources":["../../../src/commands/app/pos.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAO5C,eAAO,MAAM,kBAAkB,aAAa,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAoBF,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF3F"}
|
package/dist/commands/app/pos.js
CHANGED
|
@@ -1,41 +1,50 @@
|
|
|
1
|
-
import { existsSync, rmSync } from "node:fs";
|
|
2
|
-
import { join
|
|
1
|
+
import { appendFileSync, existsSync, rmSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
3
|
import { findWorkspaceRoot, resolveDeploySiteDir } from "./paths";
|
|
4
|
-
import {
|
|
4
|
+
import { ensureAppEnv } from "./env-check";
|
|
5
|
+
import { decryptTrailzEnvBase } from "./env-decrypt";
|
|
6
|
+
import { loadSiteEnvContext, renderNginxTemplatesIfPresent } from "./site-env";
|
|
5
7
|
import { runCommand } from "./shell";
|
|
8
|
+
export const DEFAULT_POS_BRANCH = "laf-test";
|
|
6
9
|
function removeIfExists(path) {
|
|
7
10
|
if (existsSync(path)) {
|
|
8
11
|
rmSync(path, { recursive: true, force: true });
|
|
9
12
|
}
|
|
10
13
|
}
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
14
|
+
function expandedSiteEnvBody(siteEnvBase, siteDir) {
|
|
15
|
+
return decryptTrailzEnvBase(siteEnvBase, { cwd: siteDir, expand: true });
|
|
16
|
+
}
|
|
17
|
+
function writeExpandedSiteEnv(path, siteEnvBase, siteDir) {
|
|
18
|
+
writeFileSync(path, `${expandedSiteEnvBody(siteEnvBase, siteDir)}\n`);
|
|
19
|
+
}
|
|
20
|
+
function appendExpandedSiteEnv(path, siteEnvBase, siteDir) {
|
|
21
|
+
appendFileSync(path, `\n${expandedSiteEnvBody(siteEnvBase, siteDir)}\n`);
|
|
17
22
|
}
|
|
18
23
|
export async function deployPosApp(opts, logger) {
|
|
19
24
|
const workspaceRoot = findWorkspaceRoot();
|
|
20
25
|
const siteDir = resolveDeploySiteDir(opts.target, workspaceRoot);
|
|
26
|
+
const site = loadSiteEnvContext(siteDir, logger);
|
|
27
|
+
const envName = opts.env ?? site.bltEnvName;
|
|
21
28
|
const envPlain = join(siteDir, ".env");
|
|
22
29
|
const appZip = join(siteDir, "app.zip");
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
if (envName !== site.bltEnvName) {
|
|
31
|
+
throw new Error(`Requested env "${envName}" does not match BLT_ENV_NAME="${site.bltEnvName}" in site bundle.`);
|
|
32
|
+
}
|
|
33
|
+
if (opts.target !== site.target) {
|
|
34
|
+
throw new Error(`SSH target "${opts.target}" does not match site target "${site.target}" from bundle.`);
|
|
35
|
+
}
|
|
36
|
+
ensureAppEnv({ envName, cwd: siteDir, logger });
|
|
37
|
+
logger.info(`Deploying POS branch "${opts.branch}" with env "${envName}" to "${site.target}"`);
|
|
26
38
|
logger.info(`Site directory: ${siteDir}`);
|
|
27
|
-
runCommand("bash", ["-lc", `smash -n ../../../.trailz/keys | grep GITHUB_TOKEN > .env`], logger, {
|
|
28
|
-
cwd: siteDir,
|
|
29
|
-
});
|
|
39
|
+
runCommand("bash", ["-lc", `smash -n ../../../.trailz/keys/keys | grep GITHUB_TOKEN > .env`], logger, { cwd: siteDir });
|
|
30
40
|
runCommand("bash", ["-lc", `printf '\\nTZ=America/New_York\\n' >> .env`], logger, {
|
|
31
41
|
cwd: siteDir,
|
|
32
42
|
});
|
|
33
43
|
runCommand("docker", ["build", "-f", "Dockerfile", "-t", "blt-core-pos", "."], logger, {
|
|
34
44
|
cwd: siteDir,
|
|
35
45
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
});
|
|
46
|
+
logger.info("Merging expanded site env into build .env");
|
|
47
|
+
appendExpandedSiteEnv(envPlain, site.siteEnvBase, siteDir);
|
|
39
48
|
runCommand("docker", [
|
|
40
49
|
"run",
|
|
41
50
|
"-it",
|
|
@@ -49,31 +58,17 @@ export async function deployPosApp(opts, logger) {
|
|
|
49
58
|
"blt-core-pos",
|
|
50
59
|
"/home/blt/buildcore.sh",
|
|
51
60
|
], logger, { cwd: siteDir });
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (dmResolved) {
|
|
56
|
-
const dmSiteEnvRel = relative(siteDir, dmResolved.basePath);
|
|
57
|
-
logger.info(`Writing gateway env from ${dmResolved.bundlePath} → app/.dm.env`);
|
|
58
|
-
runCommand("bash", ["-lc", `smash -n ${dmSiteEnvRel} > app/.dm.env`], logger, {
|
|
59
|
-
cwd: siteDir,
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
logger.info(`No DM env bundle for "${dmEnvName}" in ${siteDir}/.trailz/env; skipping app/.dm.env`);
|
|
64
|
-
if (existsSync(dmEnvOut)) {
|
|
65
|
-
rmSync(dmEnvOut, { force: true });
|
|
66
|
-
}
|
|
67
|
-
}
|
|
61
|
+
logger.info("Writing expanded gateway env from same bundle → app/.dm.env");
|
|
62
|
+
writeExpandedSiteEnv(join(siteDir, "app", ".dm.env"), site.siteEnvBase, siteDir);
|
|
63
|
+
renderNginxTemplatesIfPresent(site, logger);
|
|
68
64
|
removeIfExists(appZip);
|
|
69
65
|
runCommand("zip", ["-9r", "app.zip", "app/"], logger, { cwd: siteDir });
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
});
|
|
73
|
-
runCommand("scp", [
|
|
74
|
-
runCommand("scp", [appZip, `${opts.target}:`], logger, { cwd: siteDir });
|
|
66
|
+
logger.info("Writing expanded site .env for droplet deploy");
|
|
67
|
+
writeExpandedSiteEnv(envPlain, site.siteEnvBase, siteDir);
|
|
68
|
+
runCommand("scp", [envPlain, `${site.target}:`], logger, { cwd: siteDir });
|
|
69
|
+
runCommand("scp", [appZip, `${site.target}:`], logger, { cwd: siteDir });
|
|
75
70
|
runCommand("ssh", [
|
|
76
|
-
|
|
71
|
+
site.target,
|
|
77
72
|
"rm -rf app.last && mv app app.last && unzip app.zip && cd app && docker compose restart",
|
|
78
73
|
], logger, { cwd: siteDir });
|
|
79
74
|
logger.info("POS deploy complete.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pos.js","sourceRoot":"","sources":["../../../src/commands/app/pos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"pos.js","sourceRoot":"","sources":["../../../src/commands/app/pos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAQ7C,SAAS,cAAc,CAAC,IAAY;IACnC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB,EAAE,OAAe;IAChE,OAAO,oBAAoB,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,WAAmB,EAAE,OAAe;IAC/E,aAAa,CAAC,IAAI,EAAE,GAAG,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY,EAAE,WAAmB,EAAE,OAAe;IAChF,cAAc,CAAC,IAAI,EAAE,KAAK,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAyB,EAAE,MAAc;IAC3E,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAExC,IAAI,OAAO,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACd,kBAAkB,OAAO,kCAAkC,IAAI,CAAC,UAAU,mBAAmB,CAC7F,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACd,eAAe,IAAI,CAAC,MAAM,iCAAiC,IAAI,CAAC,MAAM,gBAAgB,CACtF,CAAC;IACH,CAAC;IAED,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAEhD,MAAM,CAAC,IAAI,CACV,yBAAyB,IAAI,CAAC,MAAM,eAAe,OAAO,SAAS,IAAI,CAAC,MAAM,GAAG,CACjF,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;IAE1C,UAAU,CACT,MAAM,EACN,CAAC,KAAK,EAAE,gEAAgE,CAAC,EACzE,MAAM,EACN,EAAE,GAAG,EAAE,OAAO,EAAE,CAChB,CAAC;IACF,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,4CAA4C,CAAC,EAAE,MAAM,EAAE;QACjF,GAAG,EAAE,OAAO;KACZ,CAAC,CAAC;IAEH,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE;QACtF,GAAG,EAAE,OAAO;KACZ,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IACzD,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAE3D,UAAU,CACT,QAAQ,EACR;QACC,KAAK;QACL,KAAK;QACL,MAAM;QACN,YAAY;QACZ,MAAM;QACN,IAAI;QACJ,UAAU,IAAI,CAAC,MAAM,EAAE;QACvB,IAAI;QACJ,yBAAyB;QACzB,cAAc;QACd,wBAAwB;KACxB,EACD,MAAM,EACN,EAAE,GAAG,EAAE,OAAO,EAAE,CAChB,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IAC3E,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEjF,6BAA6B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE5C,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAExE,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;IAC7D,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAE1D,UAAU,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3E,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,UAAU,CACT,KAAK,EACL;QACC,IAAI,CAAC,MAAM;QACX,yFAAyF;KACzF,EACD,MAAM,EACN,EAAE,GAAG,EAAE,OAAO,EAAE,CAChB,CAAC;IAEF,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Logger } from "@caporal/core";
|
|
2
|
+
export type SiteEnvContext = {
|
|
3
|
+
siteDir: string;
|
|
4
|
+
siteSlug: string;
|
|
5
|
+
bltEnvName: string;
|
|
6
|
+
target: string;
|
|
7
|
+
dmHost: string;
|
|
8
|
+
siteEnvBase: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function loadSiteEnvContext(siteDir: string, logger: Logger): SiteEnvContext;
|
|
11
|
+
export declare function renderNginxTemplatesIfPresent(site: SiteEnvContext, logger: Logger): void;
|
|
12
|
+
//# sourceMappingURL=site-env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-env.d.ts","sourceRoot":"","sources":["../../../src/commands/app/site-env.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACpB,CAAC;AAYF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CA8BlF;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAsBxF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { existsSync, readdirSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { readCommand, runCommand } from "./shell";
|
|
4
|
+
function parseSiteEnvOutput(output) {
|
|
5
|
+
const values = {};
|
|
6
|
+
for (const line of output.split("\n")) {
|
|
7
|
+
const eq = line.indexOf("=");
|
|
8
|
+
if (eq <= 0)
|
|
9
|
+
continue;
|
|
10
|
+
values[line.slice(0, eq)] = line.slice(eq + 1);
|
|
11
|
+
}
|
|
12
|
+
return values;
|
|
13
|
+
}
|
|
14
|
+
export function loadSiteEnvContext(siteDir, logger) {
|
|
15
|
+
const libPath = join(siteDir, "..", "_lib", "site-env.sh");
|
|
16
|
+
if (!existsSync(libPath)) {
|
|
17
|
+
throw new Error(`Site env helper not found: ${libPath}`);
|
|
18
|
+
}
|
|
19
|
+
const output = readCommand("bash", [
|
|
20
|
+
"-lc",
|
|
21
|
+
`source "${libPath}" && blt_site_env_init "${siteDir}" && printf 'SITE_SLUG=%s\\nBLT_ENV_NAME=%s\\nTARGET=%s\\nDM_HOST=%s\\nSITE_ENV=%s\\n' "$SITE_SLUG" "$BLT_ENV_NAME" "$TARGET" "$DM_HOST" "$SITE_ENV"`,
|
|
22
|
+
], logger);
|
|
23
|
+
const parsed = parseSiteEnvOutput(output.trim());
|
|
24
|
+
const { SITE_SLUG, BLT_ENV_NAME, TARGET, DM_HOST, SITE_ENV } = parsed;
|
|
25
|
+
if (!SITE_SLUG || !BLT_ENV_NAME || !TARGET || !DM_HOST || !SITE_ENV) {
|
|
26
|
+
throw new Error(`Failed to load site env context from ${siteDir}`);
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
siteDir,
|
|
30
|
+
siteSlug: SITE_SLUG,
|
|
31
|
+
bltEnvName: BLT_ENV_NAME,
|
|
32
|
+
target: TARGET,
|
|
33
|
+
dmHost: DM_HOST,
|
|
34
|
+
siteEnvBase: SITE_ENV,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function renderNginxTemplatesIfPresent(site, logger) {
|
|
38
|
+
const templatesDir = join(site.siteDir, "app", "templates");
|
|
39
|
+
if (!existsSync(templatesDir)) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const hasTemplates = readdirSync(templatesDir).some((file) => file.endsWith(".template"));
|
|
43
|
+
if (!hasTemplates) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const libPath = join(site.siteDir, "..", "_lib", "site-env.sh");
|
|
47
|
+
logger.info(`Rendering nginx templates in ${templatesDir}`);
|
|
48
|
+
runCommand("bash", [
|
|
49
|
+
"-lc",
|
|
50
|
+
`source "${libPath}" && export BLT_ENV_NAME="${site.bltEnvName}" DM_HOST="${site.dmHost}" && blt_render_nginx_templates "${templatesDir}"`,
|
|
51
|
+
], logger, { cwd: site.siteDir });
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=site-env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-env.js","sourceRoot":"","sources":["../../../src/commands/app/site-env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAWlD,SAAS,kBAAkB,CAAC,MAAc;IACzC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC;YAAE,SAAS;QACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,MAAc;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CACzB,MAAM,EACN;QACC,KAAK;QACL,WAAW,OAAO,2BAA2B,OAAO,sJAAsJ;KAC1M,EACD,MAAM,CACN,CAAC;IAEF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEtE,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO;QACN,OAAO;QACP,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,QAAQ;KACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAAoB,EAAE,MAAc;IACjF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,OAAO;IACR,CAAC;IAED,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1F,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,CAAC,gCAAgC,YAAY,EAAE,CAAC,CAAC;IAC5D,UAAU,CACT,MAAM,EACN;QACC,KAAK;QACL,WAAW,OAAO,6BAA6B,IAAI,CAAC,UAAU,cAAc,IAAI,CAAC,MAAM,oCAAoC,YAAY,GAAG;KAC1I,EACD,MAAM,EACN,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CACrB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/commands/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/commands/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,eAAe,CAAC;AA6C5E,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,OAAO,EAAE,OAAO,QA+KlD"}
|
package/dist/commands/app.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { deployPosApp } from "./app/pos";
|
|
2
|
-
import { APP_DATA_DEFAULT_FORMAT, APP_DATA_DEFAULT_OUT, appDataApply, appDataPull, appDataRefresh, } from "./app/data";
|
|
1
|
+
import { DEFAULT_POS_BRANCH, deployPosApp } from "./app/pos";
|
|
2
|
+
import { APP_DATA_DEFAULT_FORMAT, APP_DATA_DEFAULT_OUT, appDataApply, appDataPull, appDataRefresh, appDataRemove, } from "./app/data";
|
|
3
3
|
const appDataHelp = `
|
|
4
4
|
Test data workflows using cwd .trailz/env bundles
|
|
5
5
|
|
|
@@ -7,8 +7,9 @@ Usage:
|
|
|
7
7
|
blt app data pull --env <env> [--out DIR] [--format json|yaml|toon]
|
|
8
8
|
blt app data apply --env <env> <snapshotDir|latest> [--out DIR] [--dry-run]
|
|
9
9
|
blt app data refresh --from <env> --to <env> [--out DIR] [--format json|yaml|toon]
|
|
10
|
+
blt app data remove <instance> [--out DIR] [--dry-run]
|
|
10
11
|
|
|
11
|
-
Defaults: --out <cwd>/snapshots, --format toon
|
|
12
|
+
Defaults: --out <cwd>/data-snapshots, --format toon
|
|
12
13
|
|
|
13
14
|
Env credentials come from ./.trailz/env/env.<name>.bin in the current directory (not repo-root .env).
|
|
14
15
|
`;
|
|
@@ -16,16 +17,18 @@ const appHelp = `
|
|
|
16
17
|
Developer app deployment and test data workflows
|
|
17
18
|
|
|
18
19
|
Usage:
|
|
19
|
-
blt app pos --branch <branch> --env <env>
|
|
20
|
+
blt app pos <target> [--branch <branch>] [--env <env>]
|
|
20
21
|
blt app data pull --env <env> [--out DIR]
|
|
21
22
|
blt app data apply --env <env> <snapshotDir|latest> [--out DIR] [--dry-run]
|
|
22
23
|
blt app data refresh --from <env> --to <env> [--out DIR] [--format json|yaml|toon]
|
|
24
|
+
blt app data remove <instance> [--out DIR] [--dry-run]
|
|
23
25
|
|
|
24
|
-
Defaults: --out <cwd>/snapshots, --format toon
|
|
26
|
+
Defaults: --out <cwd>/data-snapshots, --format toon
|
|
25
27
|
|
|
26
28
|
Examples:
|
|
27
|
-
blt app pos --branch laf-test
|
|
29
|
+
blt app pos test1 --branch laf-test
|
|
28
30
|
blt app data refresh --from laf --to test-laf
|
|
31
|
+
blt app data remove laf
|
|
29
32
|
|
|
30
33
|
Run \`blt app data\` for data-only help.
|
|
31
34
|
`;
|
|
@@ -47,14 +50,16 @@ export default function appCommand(program) {
|
|
|
47
50
|
.command("app pos", "Build and deploy the POS app to a test target")
|
|
48
51
|
.hide()
|
|
49
52
|
.argument("<target>", "SSH target / droplet alias, e.g. test1")
|
|
50
|
-
.option("--branch <branch>", "POS git branch to build", {
|
|
51
|
-
|
|
53
|
+
.option("--branch <branch>", "POS git branch to build", {
|
|
54
|
+
default: DEFAULT_POS_BRANCH,
|
|
55
|
+
})
|
|
56
|
+
.option("--env <env>", "Environment name (defaults to BLT_ENV_NAME from site bundle)")
|
|
52
57
|
.action(async ({ args, options, logger, }) => {
|
|
53
58
|
try {
|
|
54
59
|
await deployPosApp({
|
|
55
60
|
target: String(args.target),
|
|
56
|
-
branch: String(options.branch),
|
|
57
|
-
env: String(options.env),
|
|
61
|
+
branch: String(options.branch ?? DEFAULT_POS_BRANCH),
|
|
62
|
+
env: options.env ? String(options.env) : undefined,
|
|
58
63
|
}, logger);
|
|
59
64
|
}
|
|
60
65
|
catch (error) {
|
|
@@ -135,5 +140,26 @@ export default function appCommand(program) {
|
|
|
135
140
|
process.exit(1);
|
|
136
141
|
}
|
|
137
142
|
});
|
|
143
|
+
program
|
|
144
|
+
.command("app data remove", "Delete all snapshots for an instance under the snapshot base")
|
|
145
|
+
.hide()
|
|
146
|
+
.argument("<instance>", "Snapshot folder label (e.g. laf)")
|
|
147
|
+
.option("-o, --out <dir>", "Snapshot base directory (default: <cwd>/data-snapshots)", {
|
|
148
|
+
default: APP_DATA_DEFAULT_OUT,
|
|
149
|
+
})
|
|
150
|
+
.option("--dry-run", "Print path that would be removed without deleting", { default: false })
|
|
151
|
+
.action(async ({ args, options, logger, }) => {
|
|
152
|
+
try {
|
|
153
|
+
appDataRemove({
|
|
154
|
+
instance: String(args.instance),
|
|
155
|
+
out: String(options.out),
|
|
156
|
+
dryRun: Boolean(options.dryRun),
|
|
157
|
+
}, logger);
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
logger.error(`app data remove failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
161
|
+
process.exit(1);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
138
164
|
}
|
|
139
165
|
//# sourceMappingURL=app.js.map
|
package/dist/commands/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/commands/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/commands/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,GACb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,GAAG;;;;;;;;;;;;CAYnB,CAAC;AAEF,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;CAkBf,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,OAAgB;IAClD,OAAO;SACL,OAAO,CAAC,KAAK,EAAE,kDAAkD,CAAC;SAClE,IAAI,CAAC,OAAO,CAAC;SACb,MAAM,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEJ,OAAO;SACL,OAAO,CAAC,UAAU,EAAE,mDAAmD,CAAC;SACxE,IAAI,EAAE;SACN,IAAI,CAAC,WAAW,CAAC;SACjB,MAAM,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEJ,OAAO;SACL,OAAO,CAAC,SAAS,EAAE,+CAA+C,CAAC;SACnE,IAAI,EAAE;SACN,QAAQ,CAAC,UAAU,EAAE,wCAAwC,CAAC;SAC9D,MAAM,CAAC,mBAAmB,EAAE,yBAAyB,EAAE;QACvD,OAAO,EAAE,kBAAkB;KAC3B,CAAC;SACD,MAAM,CAAC,aAAa,EAAE,8DAA8D,CAAC;SACrF,MAAM,CACN,KAAK,EAAE,EACN,IAAI,EACJ,OAAO,EACP,MAAM,GAKN,EAAE,EAAE;QACJ,IAAI,CAAC;YACJ,MAAM,YAAY,CACjB;gBACC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC3B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,kBAAkB,CAAC;gBACpD,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAClD,EACD,MAAM,CACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CACD,CAAC;IAEH,OAAO;SACL,OAAO,CAAC,eAAe,EAAE,gDAAgD,CAAC;SAC1E,IAAI,EAAE;SACN,MAAM,CAAC,aAAa,EAAE,mCAAmC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAC9E,MAAM,CAAC,iBAAiB,EAAE,yDAAyD,EAAE;QACrF,OAAO,EAAE,oBAAoB;KAC7B,CAAC;SACD,MAAM,CAAC,oBAAoB,EAAE,uCAAuC,EAAE;QACtE,OAAO,EAAE,uBAAuB;QAChC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KACnC,CAAC;SACD,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAsD,EAAE,EAAE;QACzF,IAAI,CAAC;YACJ,MAAM,WAAW,CAChB;gBACC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACxB,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACxB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAA6B;aAC1D,EACD,MAAM,CACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;IAEJ,OAAO;SACL,OAAO,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SAC5E,IAAI,EAAE;SACN,QAAQ,CAAC,eAAe,EAAE,8CAA8C,CAAC;SACzE,MAAM,CAAC,aAAa,EAAE,wCAAwC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACnF,MAAM,CAAC,iBAAiB,EAAE,uEAAuE,EAAE;QACnG,OAAO,EAAE,oBAAoB;KAC7B,CAAC;SACD,MAAM,CAAC,WAAW,EAAE,6BAA6B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SACtE,MAAM,CACN,KAAK,EAAE,EACN,IAAI,EACJ,OAAO,EACP,MAAM,GAKN,EAAE,EAAE;QACJ,IAAI,CAAC;YACJ,MAAM,YAAY,CACjB;gBACC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACxB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;gBACrC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACxB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;aAC/B,EACD,MAAM,CACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CACD,CAAC;IAEH,OAAO;SACL,OAAO,CAAC,kBAAkB,EAAE,wCAAwC,CAAC;SACrE,IAAI,EAAE;SACN,MAAM,CAAC,cAAc,EAAE,mCAAmC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAC/E,MAAM,CAAC,YAAY,EAAE,wCAAwC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SAClF,MAAM,CAAC,iBAAiB,EAAE,yDAAyD,EAAE;QACrF,OAAO,EAAE,oBAAoB;KAC7B,CAAC;SACD,MAAM,CAAC,oBAAoB,EAAE,uCAAuC,EAAE;QACtE,OAAO,EAAE,uBAAuB;QAChC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KACnC,CAAC;SACD,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAsD,EAAE,EAAE;QACzF,IAAI,CAAC;YACJ,MAAM,cAAc,CACnB;gBACC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC1B,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtB,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACxB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAA6B;aAC1D,EACD,MAAM,CACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;IAEJ,OAAO;SACL,OAAO,CAAC,iBAAiB,EAAE,8DAA8D,CAAC;SAC1F,IAAI,EAAE;SACN,QAAQ,CAAC,YAAY,EAAE,kCAAkC,CAAC;SAC1D,MAAM,CAAC,iBAAiB,EAAE,yDAAyD,EAAE;QACrF,OAAO,EAAE,oBAAoB;KAC7B,CAAC;SACD,MAAM,CAAC,WAAW,EAAE,mDAAmD,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAC5F,MAAM,CACN,KAAK,EAAE,EACN,IAAI,EACJ,OAAO,EACP,MAAM,GAKN,EAAE,EAAE;QACJ,IAAI,CAAC;YACJ,aAAa,CACZ;gBACC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC/B,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACxB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;aAC/B,EACD,MAAM,CACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CACD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/env/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,MAAM,MAAM,aAAa,GAAG;IAC3B,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/env/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,MAAM,MAAM,aAAa,GAAG;IAC3B,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAKF;;;;GAIG;AACH,wBAAsB,MAAM,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,aAAkB,GACtB,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
package/dist/commands/env/get.js
CHANGED
|
@@ -1,24 +1,8 @@
|
|
|
1
|
-
import { existsSync } from "node:fs";
|
|
2
1
|
import { join } from "node:path";
|
|
3
|
-
import { BLT_ENV_NAME_KEY,
|
|
2
|
+
import { BLT_ENV_NAME_KEY, resolveTrailzEnvPaths, trailzEnvBundlePath } from "../app/env-check";
|
|
3
|
+
import { decryptTrailzEnvBase } from "../app/env-decrypt";
|
|
4
4
|
/** Single path segment for `env.<name>` under `.trailz/env/`. */
|
|
5
5
|
const NAME_RE = /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/;
|
|
6
|
-
/**
|
|
7
|
-
* `@codemarc/smashdata` `smash` expects the **plaintext path** `tf` (e.g. `env.laf`).
|
|
8
|
-
* Ciphertext must live at `${tf}.bin`. If you pass `tf` = `env.laf.bin`, that file
|
|
9
|
-
* exists as `tf`, so smash treats it as plaintext and **re-encrypts** — output is garbage.
|
|
10
|
-
*/
|
|
11
|
-
function resolveSmashCommand(cwd) {
|
|
12
|
-
const binSmash = join(cwd, "node_modules", ".bin", "smash");
|
|
13
|
-
const script = join(cwd, "node_modules", "@codemarc", "smashdata", "smash");
|
|
14
|
-
if (existsSync(binSmash)) {
|
|
15
|
-
return [binSmash];
|
|
16
|
-
}
|
|
17
|
-
if (existsSync(script)) {
|
|
18
|
-
return ["node", script];
|
|
19
|
-
}
|
|
20
|
-
return ["bunx", "@codemarc/smashdata"];
|
|
21
|
-
}
|
|
22
6
|
/**
|
|
23
7
|
* Decrypt `.trailz/env/env.<name>.bin` with smash (`-n`) and write plaintext to `.env`.
|
|
24
8
|
* Invokes smash with path `.trailz/env/env.<name>` (no `.bin`) so smash reads `${path}.bin`.
|
|
@@ -39,20 +23,8 @@ export async function envGet(name, logger, opts = {}) {
|
|
|
39
23
|
process.exit(1);
|
|
40
24
|
}
|
|
41
25
|
const basePath = resolved.basePath;
|
|
42
|
-
const smashCmd = resolveSmashCommand(cwd);
|
|
43
|
-
const proc = Bun.spawnSync({
|
|
44
|
-
cmd: [...smashCmd, "-n", basePath],
|
|
45
|
-
cwd,
|
|
46
|
-
env: process.env,
|
|
47
|
-
stdout: "pipe",
|
|
48
|
-
stderr: "inherit",
|
|
49
|
-
});
|
|
50
|
-
if (proc.exitCode !== 0) {
|
|
51
|
-
process.exit(proc.exitCode ?? 1);
|
|
52
|
-
}
|
|
53
26
|
const outPath = join(cwd, ".env");
|
|
54
|
-
const
|
|
55
|
-
const body = expand ? expandDotEnvBody(decrypted) : decrypted;
|
|
27
|
+
const body = decryptTrailzEnvBase(basePath, { cwd, expand });
|
|
56
28
|
await Bun.write(outPath, `${body}\n`);
|
|
57
29
|
logger.info(`Wrote ${outPath} (${BLT_ENV_NAME_KEY}=${name}${expand ? ", expanded" : ""})`);
|
|
58
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/env/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/env/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAO1D,iEAAiE;AACjE,MAAM,OAAO,GAAG,8BAA8B,CAAC;AAE/C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC3B,IAAY,EACZ,MAAc,EACd,OAAsB,EAAE;IAExB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CACX,sEAAsE,CACtE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,QAAQ,EAAE,UAAU,IAAI,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEvE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACX,oDAAoD,OAAO,IAAI;YAC9D,2FAA2F,CAC5F,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,IAAI,CACV,SAAS,OAAO,KAAK,gBAAgB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAC7E,CAAC;AACH,CAAC"}
|