@codemarc/blt 1.8.3 ā 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 +18 -8
- package/dist/blt +19 -19
- 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 +14 -8
- package/dist/commands/app/env-check.d.ts.map +1 -1
- package/dist/commands/app/env-check.js +51 -21
- 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 -33
- 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 +37 -11
- package/dist/commands/app.js.map +1 -1
- package/dist/commands/env/get.d.ts +3 -2
- package/dist/commands/env/get.d.ts.map +1 -1
- package/dist/commands/env/get.js +13 -41
- package/dist/commands/env/get.js.map +1 -1
- package/dist/commands/env/list.d.ts +8 -0
- package/dist/commands/env/list.d.ts.map +1 -0
- package/dist/commands/env/list.js +21 -0
- package/dist/commands/env/list.js.map +1 -0
- package/dist/commands/env.d.ts.map +1 -1
- package/dist/commands/env.js +13 -4
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/init/script.d.ts +1 -0
- package/dist/commands/init/script.d.ts.map +1 -1
- package/dist/commands/init/script.js +33 -11
- package/dist/commands/init/script.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +6 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/show/env.d.ts.map +1 -1
- package/dist/commands/show/env.js +7 -25
- package/dist/commands/show/env.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +1 -7
- package/dist/commands/workflow.js.map +1 -1
- package/dist/lib/github.d.ts +17 -0
- package/dist/lib/github.d.ts.map +1 -0
- package/dist/lib/github.js +53 -0
- package/dist/lib/github.js.map +1 -0
- package/dist/lib/repositories.d.ts +1 -0
- package/dist/lib/repositories.d.ts.map +1 -1
- package/dist/lib/repositories.js +30 -14
- package/dist/lib/repositories.js.map +1 -1
- package/package.json +10 -10
|
@@ -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,25 +7,28 @@ 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
|
-
Env credentials come from ./.trailz/env
|
|
14
|
+
Env credentials come from ./.trailz/env/env.<name>.bin in the current directory (not repo-root .env).
|
|
14
15
|
`;
|
|
15
16
|
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":"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"}
|
|
@@ -4,8 +4,9 @@ export type EnvGetOptions = {
|
|
|
4
4
|
expand?: boolean;
|
|
5
5
|
};
|
|
6
6
|
/**
|
|
7
|
-
* Decrypt `.trailz/env
|
|
8
|
-
* Invokes smash with path `.trailz/env
|
|
7
|
+
* Decrypt `.trailz/env/env.<name>.bin` with smash (`-n`) and write plaintext to `.env`.
|
|
8
|
+
* Invokes smash with path `.trailz/env/env.<name>` (no `.bin`) so smash reads `${path}.bin`.
|
|
9
|
+
* Legacy `.trailz/env/.env.<name>.bin` bundles are still accepted.
|
|
9
10
|
*/
|
|
10
11
|
export declare function envGet(name: string, logger: Logger, opts?: EnvGetOptions): Promise<void>;
|
|
11
12
|
//# sourceMappingURL=get.d.ts.map
|
|
@@ -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,27 +1,12 @@
|
|
|
1
|
-
import { existsSync } from "node:fs";
|
|
2
1
|
import { join } from "node:path";
|
|
3
|
-
import { BLT_ENV_NAME_KEY,
|
|
4
|
-
|
|
2
|
+
import { BLT_ENV_NAME_KEY, resolveTrailzEnvPaths, trailzEnvBundlePath } from "../app/env-check";
|
|
3
|
+
import { decryptTrailzEnvBase } from "../app/env-decrypt";
|
|
4
|
+
/** Single path segment for `env.<name>` under `.trailz/env/`. */
|
|
5
5
|
const NAME_RE = /^[a-zA-Z0-9][a-zA-Z0-9._-]*$/;
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
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
|
-
/**
|
|
23
|
-
* Decrypt `.trailz/env/.env.<name>.bin` with smash (`-n`) and write plaintext to `.env`.
|
|
24
|
-
* Invokes smash with path `.trailz/env/.env.<name>` (no `.bin`) so smash reads `${path}.bin`.
|
|
7
|
+
* Decrypt `.trailz/env/env.<name>.bin` with smash (`-n`) and write plaintext to `.env`.
|
|
8
|
+
* Invokes smash with path `.trailz/env/env.<name>` (no `.bin`) so smash reads `${path}.bin`.
|
|
9
|
+
* Legacy `.trailz/env/.env.<name>.bin` bundles are still accepted.
|
|
25
10
|
*/
|
|
26
11
|
export async function envGet(name, logger, opts = {}) {
|
|
27
12
|
const expand = opts.expand ?? true;
|
|
@@ -30,30 +15,17 @@ export async function envGet(name, logger, opts = {}) {
|
|
|
30
15
|
process.exit(1);
|
|
31
16
|
}
|
|
32
17
|
const cwd = process.cwd();
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const binPath = `${basePath}.bin`;
|
|
37
|
-
if (!existsSync(binPath)) {
|
|
18
|
+
const resolved = resolveTrailzEnvPaths(cwd, name);
|
|
19
|
+
const binPath = resolved?.bundlePath ?? trailzEnvBundlePath(cwd, name);
|
|
20
|
+
if (!resolved) {
|
|
38
21
|
logger.error(`Encrypted env not found (need ciphertext at):\n ${binPath}\n` +
|
|
39
|
-
`Smash stores secrets in
|
|
22
|
+
`Smash stores secrets in env.<name>.bin; the argument to smash is env.<name> without .bin.`);
|
|
40
23
|
process.exit(1);
|
|
41
24
|
}
|
|
42
|
-
const
|
|
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
|
-
}
|
|
25
|
+
const basePath = resolved.basePath;
|
|
53
26
|
const outPath = join(cwd, ".env");
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
await Bun.write(outPath, `${formatEnvFileHeader(name)}${body}\n`);
|
|
27
|
+
const body = decryptTrailzEnvBase(basePath, { cwd, expand });
|
|
28
|
+
await Bun.write(outPath, `${body}\n`);
|
|
57
29
|
logger.info(`Wrote ${outPath} (${BLT_ENV_NAME_KEY}=${name}${expand ? ", expanded" : ""})`);
|
|
58
30
|
}
|
|
59
31
|
//# sourceMappingURL=get.js.map
|
|
@@ -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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Logger } from "@caporal/core";
|
|
2
|
+
export type EnvListOptions = {
|
|
3
|
+
json?: boolean;
|
|
4
|
+
cwd?: string;
|
|
5
|
+
};
|
|
6
|
+
/** List trailz env bundle names available in `cwd/.trailz/env/`. */
|
|
7
|
+
export declare function envList(logger: Logger, opts?: EnvListOptions): void;
|
|
8
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/env/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,MAAM,cAAc,GAAG;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,oEAAoE;AACpE,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,IAAI,CAoBvE"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { listTrailzEnvNames } from "../app/env-check";
|
|
2
|
+
/** List trailz env bundle names available in `cwd/.trailz/env/`. */
|
|
3
|
+
export function envList(logger, opts = {}) {
|
|
4
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
5
|
+
const names = listTrailzEnvNames(cwd);
|
|
6
|
+
if (opts.json) {
|
|
7
|
+
console.log(JSON.stringify(names, null, 2));
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (names.length === 0) {
|
|
11
|
+
logger.info(`No environment bundles in ${cwd}/.trailz/env/`);
|
|
12
|
+
logger.info("Usage: blt env get <name>");
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
logger.info(`Available environments (${cwd}/.trailz/env):`);
|
|
16
|
+
for (const name of names) {
|
|
17
|
+
logger.info(` ${name}`);
|
|
18
|
+
}
|
|
19
|
+
logger.info("\nUsage: blt env get <name>");
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/env/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAOtD,oEAAoE;AACpE,MAAM,UAAU,OAAO,CAAC,MAAc,EAAE,OAAuB,EAAE;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO;IACR,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,6BAA6B,GAAG,eAAe,CAAC,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO;IACR,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,2BAA2B,GAAG,gBAAgB,CAAC,CAAC;IAC5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiC,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiC,OAAO,EAAE,MAAM,eAAe,CAAC;AAI5E,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,OAAO,EAAE,OAAO,QAyDlD"}
|
package/dist/commands/env.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { envGet } from "./env/get";
|
|
2
|
+
import { envList } from "./env/list";
|
|
2
3
|
export default function envCommand(program) {
|
|
3
4
|
const envHelpText = `
|
|
4
5
|
env utilities (trailz / smash)
|
|
@@ -7,11 +8,12 @@ Usage:
|
|
|
7
8
|
blt env <operation>
|
|
8
9
|
|
|
9
10
|
Available operations:
|
|
10
|
-
|
|
11
|
+
list List environment names with ciphertext in .trailz/env/
|
|
12
|
+
get <name> Decrypt .trailz/env/env.<name>.bin with smash and write .env ($VAR references expanded by default)
|
|
11
13
|
|
|
12
|
-
Requires: SMASH_KEY, ciphertext at .trailz/env
|
|
14
|
+
Requires (get): SMASH_KEY, ciphertext at .trailz/env/env.<name>.bin, and smash (@codemarc/smashdata) via node_modules or bunx.
|
|
13
15
|
|
|
14
|
-
Run 'blt env get --help' for more information.
|
|
16
|
+
Run 'blt env list --help' or 'blt env get --help' for more information.
|
|
15
17
|
`;
|
|
16
18
|
program
|
|
17
19
|
.command("env", "decrypt trailz env to .env")
|
|
@@ -19,10 +21,17 @@ Run 'blt env get --help' for more information.
|
|
|
19
21
|
.action(() => {
|
|
20
22
|
console.log(envHelpText);
|
|
21
23
|
});
|
|
24
|
+
program
|
|
25
|
+
.command("env list", "List trailz env bundle names in .trailz/env/")
|
|
26
|
+
.hide()
|
|
27
|
+
.option("--json", "Output names as JSON", { default: false })
|
|
28
|
+
.action(({ logger, options }) => {
|
|
29
|
+
envList(logger, { json: options.json === true });
|
|
30
|
+
});
|
|
22
31
|
program
|
|
23
32
|
.command("env get", "Decrypt named trailz env to .env")
|
|
24
33
|
.hide()
|
|
25
|
-
.argument("<name>", "Environment name (ciphertext: .trailz/env
|
|
34
|
+
.argument("<name>", "Environment name (ciphertext: .trailz/env/env.<name>.bin)")
|
|
26
35
|
.option("--no-expand", "Write decrypted values verbatim (keep $VAR references)")
|
|
27
36
|
.action(async ({ args, logger, options, }) => {
|
|
28
37
|
try {
|
package/dist/commands/env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,OAAgB;IAClD,MAAM,WAAW,GAAG;;;;;;;;;;;;;CAapB,CAAC;IAED,OAAO;SACL,OAAO,CAAC,KAAK,EAAE,4BAA4B,CAAC;SAC5C,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,UAAU,EAAE,8CAA8C,CAAC;SACnE,IAAI,EAAE;SACN,MAAM,CAAC,QAAQ,EAAE,sBAAsB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAC5D,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAsD,EAAE,EAAE;QACnF,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEJ,OAAO;SACL,OAAO,CAAC,SAAS,EAAE,kCAAkC,CAAC;SACtD,IAAI,EAAE;SACN,QAAQ,CAAC,QAAQ,EAAE,2DAA2D,CAAC;SAC/E,MAAM,CAAC,aAAa,EAAE,wDAAwD,CAAC;SAC/E,MAAM,CACN,KAAK,EAAE,EACN,IAAI,EACJ,MAAM,EACN,OAAO,GAKP,EAAE,EAAE;QACJ,IAAI,CAAC;YACJ,MAAM,MAAM,CAAC,IAAI,CAAC,IAAc,EAAE,MAAM,EAAE;gBACzC,MAAM,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI;aACjC,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CACD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../src/commands/init/script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../../src/commands/init/script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAU5C,UAAU,iBAAiB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAiED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA6Hf"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { chmodSync, existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { dirname, join, resolve } from "node:path";
|
|
3
|
+
import { ensureGhReady, ghInitScriptPreamble, ghRepoCloneCommand, } from "../../lib/github";
|
|
3
4
|
import { BUNDLE_REPOSITORY, REPOSITORIES } from "../../lib/repositories";
|
|
4
5
|
function parseEnvFile(envPath) {
|
|
5
6
|
const content = readFileSync(envPath, "utf-8");
|
|
@@ -53,6 +54,9 @@ function connectionFromSupabaseEnv(env) {
|
|
|
53
54
|
* Generate a shell script that clones or pulls all BLT projects into the current directory
|
|
54
55
|
*/
|
|
55
56
|
export async function generateInitScript(options, logger) {
|
|
57
|
+
if (options.gh) {
|
|
58
|
+
ensureGhReady(logger);
|
|
59
|
+
}
|
|
56
60
|
const lines = [
|
|
57
61
|
"#!/usr/bin/env bash",
|
|
58
62
|
"# BLT project init script - clones or pulls all projects into the current directory",
|
|
@@ -63,29 +67,47 @@ export async function generateInitScript(options, logger) {
|
|
|
63
67
|
"cd \"$(dirname \"$0\")\"",
|
|
64
68
|
"",
|
|
65
69
|
];
|
|
70
|
+
if (options.gh) {
|
|
71
|
+
lines.push(...ghInitScriptPreamble());
|
|
72
|
+
}
|
|
66
73
|
if (options.bundleWorkspace) {
|
|
67
|
-
const bundleUrl = options.ssh ? BUNDLE_REPOSITORY.sshUrl : BUNDLE_REPOSITORY.url;
|
|
68
74
|
lines.push(`# ${BUNDLE_REPOSITORY.description}`);
|
|
69
75
|
lines.push(`echo "Syncing ${BUNDLE_REPOSITORY.name} (umbrella)..."`);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
if (options.gh) {
|
|
77
|
+
lines.push(`if [ -d ".git" ]; then`);
|
|
78
|
+
lines.push(` git fetch origin`);
|
|
79
|
+
lines.push(` git reset --hard origin/HEAD`);
|
|
80
|
+
lines.push(`else`);
|
|
81
|
+
lines.push(` ${ghRepoCloneCommand(BUNDLE_REPOSITORY, ".", options.ssh)}`);
|
|
82
|
+
lines.push(`fi`);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const bundleUrl = options.ssh ? BUNDLE_REPOSITORY.sshUrl : BUNDLE_REPOSITORY.url;
|
|
86
|
+
lines.push(`if [ ! -d ".git" ]; then`);
|
|
87
|
+
lines.push(` git init`);
|
|
88
|
+
lines.push(`fi`);
|
|
89
|
+
lines.push(`if ! git remote get-url origin &>/dev/null; then`);
|
|
90
|
+
lines.push(` git remote add origin ${bundleUrl}`);
|
|
91
|
+
lines.push(`fi`);
|
|
92
|
+
lines.push(`git fetch origin`);
|
|
93
|
+
lines.push(`git reset --hard origin/HEAD`);
|
|
94
|
+
}
|
|
78
95
|
lines.push("");
|
|
79
96
|
}
|
|
80
97
|
for (const repo of REPOSITORIES) {
|
|
81
|
-
const url = options.ssh ? repo.sshUrl : repo.url;
|
|
82
98
|
lines.push(`# ${repo.description || repo.name}`);
|
|
83
99
|
lines.push(`if [ -d "${repo.name}" ]; then`);
|
|
84
100
|
lines.push(` echo "Pulling ${repo.name}..."`);
|
|
85
101
|
lines.push(` (cd ${repo.name} && git pull)`);
|
|
86
102
|
lines.push(`else`);
|
|
87
103
|
lines.push(` echo "Cloning ${repo.name}..."`);
|
|
88
|
-
|
|
104
|
+
if (options.gh) {
|
|
105
|
+
lines.push(` ${ghRepoCloneCommand(repo, repo.name, options.ssh)}`);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
const url = options.ssh ? repo.sshUrl : repo.url;
|
|
109
|
+
lines.push(` git clone ${url} ${repo.name}`);
|
|
110
|
+
}
|
|
89
111
|
lines.push(`fi`);
|
|
90
112
|
lines.push("");
|
|
91
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/commands/init/script.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"script.js","sourceRoot":"","sources":["../../../src/commands/init/script.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,OAAO,EAAE,OAAO,QAyDnD"}
|
package/dist/commands/init.js
CHANGED
|
@@ -17,11 +17,13 @@ With -w, also creates blt.code-workspace with folder entries from the repository
|
|
|
17
17
|
With -b, clones/pulls the umbrella repo (codemarc/blt) first, then sub-repos, and
|
|
18
18
|
creates blt.code-workspace as a single-root workspace (name "blt", path ".").
|
|
19
19
|
With -c, adds sqltools.connections from SUPABASE_* vars in .env if present.
|
|
20
|
+
With -g, use GitHub CLI (gh repo clone) instead of git clone. Requires gh auth login.
|
|
20
21
|
|
|
21
22
|
Example:
|
|
22
23
|
blt init
|
|
23
24
|
blt init -w -c
|
|
24
25
|
blt init -b
|
|
26
|
+
blt init -g
|
|
25
27
|
./getblt.sh
|
|
26
28
|
`;
|
|
27
29
|
program
|
|
@@ -31,6 +33,9 @@ Example:
|
|
|
31
33
|
default: "./getblt.sh",
|
|
32
34
|
})
|
|
33
35
|
.option("-s, --ssh", "Use SSH URLs instead of HTTPS URLs", { default: false })
|
|
36
|
+
.option("-g, --gh", "Use GitHub CLI (gh repo clone) instead of git clone", {
|
|
37
|
+
default: false,
|
|
38
|
+
})
|
|
34
39
|
.option("-w, --workspace", "Also generate blt.code-workspace with folders from repositories", {
|
|
35
40
|
default: false,
|
|
36
41
|
})
|
|
@@ -44,6 +49,7 @@ Example:
|
|
|
44
49
|
await generateInitScript({
|
|
45
50
|
output: options.output,
|
|
46
51
|
ssh: options.ssh,
|
|
52
|
+
gh: options.gh,
|
|
47
53
|
workspace: options.workspace,
|
|
48
54
|
bundleWorkspace: options.bundle,
|
|
49
55
|
connectionsFromEnv: options.connections,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,OAAgB;IACnD,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,OAAgB;IACnD,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsBrB,CAAC;IAED,OAAO;SACL,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC;SACpC,IAAI,CAAC,YAAY,CAAC;SAClB,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,EAAE;QAC5D,OAAO,EAAE,aAAa;KACtB,CAAC;SACD,MAAM,CAAC,WAAW,EAAE,oCAAoC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SAC7E,MAAM,CAAC,UAAU,EAAE,qDAAqD,EAAE;QAC1E,OAAO,EAAE,KAAK;KACd,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE,iEAAiE,EAAE;QAC7F,OAAO,EAAE,KAAK;KACd,CAAC;SACD,MAAM,CAAC,cAAc,EAAE,uEAAuE,EAAE;QAChG,OAAO,EAAE,KAAK;KACd,CAAC;SACD,MAAM,CAAC,mBAAmB,EAAE,+CAA+C,EAAE;QAC7E,OAAO,EAAE,KAAK;KACd,CAAC;SACD,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QACrC,MAAM,kBAAkB,CACvB;YACC,MAAM,EAAE,OAAO,CAAC,MAAgB;YAChC,GAAG,EAAE,OAAO,CAAC,GAAc;YAC3B,EAAE,EAAE,OAAO,CAAC,EAAa;YACzB,SAAS,EAAE,OAAO,CAAC,SAAoB;YACvC,eAAe,EAAE,OAAO,CAAC,MAAiB;YAC1C,kBAAkB,EAAE,OAAO,CAAC,WAAsB;SAClD,EACD,MAAM,CACN,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/commands/show/env.ts"],"names":[],"mappings":"AA6BA;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/commands/show/env.ts"],"names":[],"mappings":"AA6BA;;GAEG;AACH,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA8H7C"}
|
|
@@ -39,6 +39,12 @@ export async function showEnv() {
|
|
|
39
39
|
console.log("\nš§ BLT Core Environment Variables\n");
|
|
40
40
|
// Define the environment variables to check
|
|
41
41
|
const envVars = [
|
|
42
|
+
{
|
|
43
|
+
name: "BLT_ENV_NAME",
|
|
44
|
+
description: "BLT environment name",
|
|
45
|
+
value: process.env.BLT_ENV_NAME,
|
|
46
|
+
sensitive: false,
|
|
47
|
+
},
|
|
42
48
|
{
|
|
43
49
|
name: "SUPABASE_PROJECT_REF",
|
|
44
50
|
description: "Supabase project reference",
|
|
@@ -98,31 +104,7 @@ export async function showEnv() {
|
|
|
98
104
|
description: "Supabase anonymous key",
|
|
99
105
|
value: process.env.VITE_SUPABASE_ANON_KEY,
|
|
100
106
|
sensitive: true,
|
|
101
|
-
}
|
|
102
|
-
{
|
|
103
|
-
name: "STRIPE_SECRET_KEY",
|
|
104
|
-
description: "Stripe secret key",
|
|
105
|
-
value: process.env.STRIPE_SECRET_KEY,
|
|
106
|
-
sensitive: true,
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
name: "STRIPE_PUBLISHABLE_KEY",
|
|
110
|
-
description: "Stripe publishable key",
|
|
111
|
-
value: process.env.STRIPE_PUBLISHABLE_KEY,
|
|
112
|
-
sensitive: true,
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
name: "SQUARE_APP_ID",
|
|
116
|
-
description: "Square app ID",
|
|
117
|
-
value: process.env.SQUARE_APP_ID,
|
|
118
|
-
sensitive: false,
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
name: "SQUARE_ACCESS_TOKEN",
|
|
122
|
-
description: "Square access token",
|
|
123
|
-
value: process.env.SQUARE_ACCESS_TOKEN,
|
|
124
|
-
sensitive: true,
|
|
125
|
-
},
|
|
107
|
+
}
|
|
126
108
|
];
|
|
127
109
|
// Build ASCII table
|
|
128
110
|
const headers = ["Variable Name", "Description", "Value"];
|