@bedrockkit/cli 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +27 -25
- package/README.md +27 -25
- package/dist/cli.js +48 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.js +187 -39
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/bump.js +4 -4
- package/dist/commands/bump.js.map +1 -1
- package/dist/commands/deps.js +7 -7
- package/dist/commands/deps.js.map +1 -1
- package/dist/commands/import.js +56 -22
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/index.js +13 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.js +30 -25
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/link.js +337 -0
- package/dist/commands/link.js.map +1 -0
- package/dist/commands/package.js +22 -15
- package/dist/commands/package.js.map +1 -1
- package/dist/commands/remove.js +165 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/setting.js +13 -106
- package/dist/commands/setting.js.map +1 -1
- package/dist/commands/sync.js +24 -14
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/template.js +35 -19
- package/dist/commands/template.js.map +1 -1
- package/dist/commands/validate.js +47 -38
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/watch.js +422 -28
- package/dist/commands/watch.js.map +1 -1
- package/dist/core/manifest.js +1 -1
- package/dist/core/manifest.js.map +1 -1
- package/dist/help.js +17 -16
- package/dist/help.js.map +1 -1
- package/dist/utils/i18n.js +760 -24
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/settings.js +1 -1
- package/dist/utils/settings.js.map +1 -1
- package/dist/utils/tooling.js +12 -10
- package/dist/utils/tooling.js.map +1 -1
- package/dist/utils/ui.js +3 -2
- package/dist/utils/ui.js.map +1 -1
- package/dist/utils/update.js +37 -0
- package/dist/utils/update.js.map +1 -0
- package/package.json +58 -58
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { rm, readdir, lstat } from "node:fs/promises";
|
|
2
|
+
import { resolve, join } from "node:path";
|
|
3
|
+
import { select, confirm, isCancel } from "@clack/prompts";
|
|
4
|
+
import { loadConfigContext } from "../core/config.js";
|
|
5
|
+
import { parseArgs } from "../utils/args.js";
|
|
6
|
+
import { pathExists } from "../utils/fs.js";
|
|
7
|
+
import { loadSettings, resolveProjectRoot } from "../utils/settings.js";
|
|
8
|
+
import { resolveLang, t } from "../utils/i18n.js";
|
|
9
|
+
import { createRequire } from "node:module";
|
|
10
|
+
const DEVELOPMENT_BEHAVIOR = "development_behavior_packs";
|
|
11
|
+
const DEVELOPMENT_RESOURCE = "development_resource_packs";
|
|
12
|
+
async function discoverProjects() {
|
|
13
|
+
const settings = await loadSettings();
|
|
14
|
+
const base = resolveProjectRoot(settings);
|
|
15
|
+
if (!(await pathExists(base)))
|
|
16
|
+
return [];
|
|
17
|
+
const entries = await readdir(base, { withFileTypes: true });
|
|
18
|
+
const found = [];
|
|
19
|
+
for (const entry of entries) {
|
|
20
|
+
if (!entry.isDirectory())
|
|
21
|
+
continue;
|
|
22
|
+
const root = resolve(base, entry.name);
|
|
23
|
+
const configPath = resolve(root, "bkit.config.json");
|
|
24
|
+
if (await pathExists(configPath)) {
|
|
25
|
+
found.push({ name: entry.name, root, configPath });
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return found;
|
|
29
|
+
}
|
|
30
|
+
function resolveTargetPaths(target, projectName) {
|
|
31
|
+
if (target.behavior || target.resource) {
|
|
32
|
+
return { behavior: target.behavior, resource: target.resource };
|
|
33
|
+
}
|
|
34
|
+
if (!target.product)
|
|
35
|
+
return {};
|
|
36
|
+
const require = createRequire(import.meta.url);
|
|
37
|
+
const coreBuild = require("@minecraft/core-build-tasks");
|
|
38
|
+
const getGameDeploymentRootPaths = coreBuild.getGameDeploymentRootPaths;
|
|
39
|
+
if (!getGameDeploymentRootPaths)
|
|
40
|
+
return {};
|
|
41
|
+
const rootPaths = getGameDeploymentRootPaths();
|
|
42
|
+
const root = rootPaths[target.product];
|
|
43
|
+
if (!root)
|
|
44
|
+
return {};
|
|
45
|
+
return {
|
|
46
|
+
behavior: join(root, DEVELOPMENT_BEHAVIOR, projectName),
|
|
47
|
+
resource: join(root, DEVELOPMENT_RESOURCE, projectName),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
async function removeSymlinkEntries(rootDir) {
|
|
51
|
+
const stack = [rootDir];
|
|
52
|
+
while (stack.length) {
|
|
53
|
+
const current = stack.pop();
|
|
54
|
+
if (!current)
|
|
55
|
+
continue;
|
|
56
|
+
const entries = await readdir(current, { withFileTypes: true });
|
|
57
|
+
for (const entry of entries) {
|
|
58
|
+
const fullPath = resolve(current, entry.name);
|
|
59
|
+
const stat = await lstat(fullPath);
|
|
60
|
+
if (stat.isSymbolicLink()) {
|
|
61
|
+
await rm(fullPath, { recursive: true, force: true });
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (stat.isDirectory()) {
|
|
65
|
+
stack.push(fullPath);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export async function handleRemove(ctx) {
|
|
71
|
+
const parsed = parseArgs(ctx.argv);
|
|
72
|
+
const lang = ctx.lang ?? resolveLang(parsed.flags.lang);
|
|
73
|
+
const quiet = !!parsed.flags.quiet || !!parsed.flags.q;
|
|
74
|
+
const yes = !!parsed.flags.yes;
|
|
75
|
+
const projects = await discoverProjects();
|
|
76
|
+
if (!projects.length) {
|
|
77
|
+
console.error(t("remove.none", lang));
|
|
78
|
+
process.exitCode = 1;
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
let projectName = parsed.flags.project;
|
|
82
|
+
if (!projectName && parsed.positional[0]) {
|
|
83
|
+
projectName = String(parsed.positional[0]);
|
|
84
|
+
}
|
|
85
|
+
if (!projectName && !quiet) {
|
|
86
|
+
const choice = await select({
|
|
87
|
+
message: t("remove.selectProject", lang),
|
|
88
|
+
options: projects.map((p) => ({ value: p.name, label: p.name })),
|
|
89
|
+
});
|
|
90
|
+
if (isCancel(choice)) {
|
|
91
|
+
console.error(t("common.cancelled", lang));
|
|
92
|
+
process.exitCode = 1;
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
projectName = String(choice);
|
|
96
|
+
}
|
|
97
|
+
const project = projects.find((p) => p.name === projectName);
|
|
98
|
+
if (!project) {
|
|
99
|
+
console.error(t("remove.notFound", lang, { name: projectName ?? "" }));
|
|
100
|
+
process.exitCode = 1;
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const configCtx = await loadConfigContext(project.configPath);
|
|
104
|
+
const distDir = resolve(project.root, configCtx.config.build?.outDir ?? "dist");
|
|
105
|
+
const watchDir = resolve(project.root, ".watch-dist");
|
|
106
|
+
const targetNames = Object.keys(configCtx.config.sync?.targets ?? {});
|
|
107
|
+
let targetName = parsed.flags.target ?? configCtx.config.sync?.defaultTarget;
|
|
108
|
+
if (!targetName || !(targetName in (configCtx.config.sync?.targets ?? {}))) {
|
|
109
|
+
if (targetNames.length === 1) {
|
|
110
|
+
targetName = targetNames[0];
|
|
111
|
+
}
|
|
112
|
+
else if (targetNames.length && !quiet) {
|
|
113
|
+
const choice = await select({
|
|
114
|
+
message: t("sync.selectTarget", lang),
|
|
115
|
+
options: targetNames.map((name) => ({ value: name, label: name })),
|
|
116
|
+
});
|
|
117
|
+
if (!isCancel(choice))
|
|
118
|
+
targetName = String(choice);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const removeDist = parsed.flags.dist ? true : false;
|
|
122
|
+
const removeWatch = parsed.flags.watch ? true : false;
|
|
123
|
+
if (!quiet && !yes) {
|
|
124
|
+
const ok = await confirm({
|
|
125
|
+
message: t("remove.confirmProject", lang, { name: project.name }),
|
|
126
|
+
initialValue: false,
|
|
127
|
+
});
|
|
128
|
+
if (isCancel(ok) || !ok) {
|
|
129
|
+
console.error(t("common.cancelled", lang));
|
|
130
|
+
process.exitCode = 1;
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (targetName) {
|
|
135
|
+
const targetConfig = (configCtx.config.sync?.targets ?? {})[targetName];
|
|
136
|
+
if (targetConfig) {
|
|
137
|
+
const projectName = targetConfig.projectName ?? configCtx.config.project?.name ?? project.name;
|
|
138
|
+
const targetPaths = resolveTargetPaths(targetConfig, projectName);
|
|
139
|
+
const candidates = [targetPaths.behavior, targetPaths.resource].filter((p) => !!p);
|
|
140
|
+
for (const targetPath of candidates) {
|
|
141
|
+
if (!(await pathExists(targetPath)))
|
|
142
|
+
continue;
|
|
143
|
+
const stat = await lstat(targetPath);
|
|
144
|
+
if (stat.isSymbolicLink()) {
|
|
145
|
+
await rm(targetPath, { recursive: true, force: true });
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
if (!stat.isDirectory())
|
|
149
|
+
continue;
|
|
150
|
+
await removeSymlinkEntries(targetPath);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
await rm(project.root, { recursive: true, force: true });
|
|
155
|
+
if (removeDist) {
|
|
156
|
+
await rm(distDir, { recursive: true, force: true });
|
|
157
|
+
}
|
|
158
|
+
if (removeWatch) {
|
|
159
|
+
await rm(watchDir, { recursive: true, force: true });
|
|
160
|
+
}
|
|
161
|
+
if (!quiet) {
|
|
162
|
+
console.log(t("remove.done", lang, { name: project.name }));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/setting.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import { select,
|
|
1
|
+
import { select, isCancel } from "@clack/prompts";
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
3
|
import { parseArgs } from "../utils/args.js";
|
|
4
4
|
import { resolveLang, t } from "../utils/i18n.js";
|
|
5
|
-
import { loadSettings, saveSettings, getSettingsPath,
|
|
5
|
+
import { loadSettings, saveSettings, getSettingsPath, promptLangSelection, promptProjectRoot, } from "../utils/settings.js";
|
|
6
6
|
export async function handleSetting(ctx) {
|
|
7
7
|
const parsed = parseArgs(ctx.argv);
|
|
8
8
|
const settings = await loadSettings();
|
|
9
9
|
const currentLang = settings.lang?.value ?? ctx.lang ?? resolveLang(parsed.flags.lang);
|
|
10
10
|
// Flags: --lang <ja|en>
|
|
11
11
|
const langFlag = parsed.flags.lang;
|
|
12
|
-
const setupLangFlag = parsed.flags["setup-lang"];
|
|
13
|
-
const setupRootFlag = parsed.flags["setup-project-root"];
|
|
14
12
|
const projectRootFlag = parsed.flags["project-root"];
|
|
15
|
-
const orderFlag = parsed.flags["onboarding-order"];
|
|
16
13
|
if (langFlag) {
|
|
17
14
|
const next = langFlag === "en" ? "en" : "ja";
|
|
18
15
|
await saveSettings({
|
|
@@ -33,53 +30,23 @@ export async function handleSetting(ctx) {
|
|
|
33
30
|
};
|
|
34
31
|
updated = true;
|
|
35
32
|
}
|
|
36
|
-
if (setupLangFlag !== undefined) {
|
|
37
|
-
const enabled = setupLangFlag === true || String(setupLangFlag).toLowerCase() === "true";
|
|
38
|
-
nextSettings.lang = {
|
|
39
|
-
value: settings.lang?.value,
|
|
40
|
-
setupDone: settings.lang?.setupDone,
|
|
41
|
-
onboarding: enabled,
|
|
42
|
-
};
|
|
43
|
-
updated = true;
|
|
44
|
-
}
|
|
45
|
-
if (setupRootFlag !== undefined) {
|
|
46
|
-
const enabled = setupRootFlag === true || String(setupRootFlag).toLowerCase() === "true";
|
|
47
|
-
nextSettings.projectRoot = {
|
|
48
|
-
path: settings.projectRoot?.path,
|
|
49
|
-
setupDone: settings.projectRoot?.setupDone,
|
|
50
|
-
onboarding: enabled,
|
|
51
|
-
};
|
|
52
|
-
updated = true;
|
|
53
|
-
}
|
|
54
|
-
if (orderFlag) {
|
|
55
|
-
const order = orderFlag
|
|
56
|
-
.split(",")
|
|
57
|
-
.map((v) => v.trim())
|
|
58
|
-
.filter((v) => v === "lang" || v === "projectRoot");
|
|
59
|
-
if (order.length) {
|
|
60
|
-
nextSettings.onboardingOrder = order;
|
|
61
|
-
updated = true;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
33
|
if (updated) {
|
|
65
34
|
await saveSettings(nextSettings);
|
|
66
35
|
console.log(t("setting.current", currentLang));
|
|
67
|
-
console.log(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (nextSettings.onboardingOrder?.length) {
|
|
71
|
-
console.log(`- onboardingOrder: ${nextSettings.onboardingOrder.join(", ")}`);
|
|
72
|
-
}
|
|
36
|
+
console.log(t("setting.projectRootLine", currentLang, {
|
|
37
|
+
path: nextSettings.projectRoot?.path ?? t("setting.unset", currentLang),
|
|
38
|
+
}));
|
|
73
39
|
return;
|
|
74
40
|
}
|
|
75
41
|
const choice = await select({
|
|
76
42
|
message: t("setting.selectItem", currentLang),
|
|
77
43
|
options: [
|
|
78
44
|
{ value: "lang", label: t("setting.language", currentLang), hint: t("setting.langDesc", currentLang) },
|
|
79
|
-
{
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
45
|
+
{
|
|
46
|
+
value: "projectRoot",
|
|
47
|
+
label: t("setting.projectRoot", currentLang),
|
|
48
|
+
hint: t("setting.projectRootHint", currentLang),
|
|
49
|
+
},
|
|
83
50
|
],
|
|
84
51
|
});
|
|
85
52
|
if (isCancel(choice)) {
|
|
@@ -99,7 +66,7 @@ export async function handleSetting(ctx) {
|
|
|
99
66
|
});
|
|
100
67
|
console.log(t("setting.languageSaved", next));
|
|
101
68
|
console.log(`${t("setting.current", next)}: lang=${next} (${t("setting.langDesc", next)})`);
|
|
102
|
-
console.log(
|
|
69
|
+
console.log(t("setting.settingsPath", next, { path: getSettingsPath() }));
|
|
103
70
|
}
|
|
104
71
|
if (choice === "projectRoot") {
|
|
105
72
|
const root = settings.projectRoot?.path ?? resolve(process.cwd(), "project");
|
|
@@ -112,68 +79,8 @@ export async function handleSetting(ctx) {
|
|
|
112
79
|
...settings,
|
|
113
80
|
projectRoot: { path: picked, setupDone: true, onboarding: settings.projectRoot?.onboarding ?? true },
|
|
114
81
|
});
|
|
115
|
-
console.log(
|
|
116
|
-
}
|
|
117
|
-
if (choice === "langSetup" || choice === "rootSetup") {
|
|
118
|
-
const setupChoice = await select({
|
|
119
|
-
message: t("setting.setupPrompt", currentLang),
|
|
120
|
-
options: [
|
|
121
|
-
{ value: "true", label: "true" },
|
|
122
|
-
{ value: "false", label: "false" },
|
|
123
|
-
],
|
|
124
|
-
initialValue: choice === "langSetup"
|
|
125
|
-
? settings.lang?.onboarding === false
|
|
126
|
-
? "false"
|
|
127
|
-
: "true"
|
|
128
|
-
: settings.projectRoot?.onboarding === false
|
|
129
|
-
? "false"
|
|
130
|
-
: "true",
|
|
131
|
-
});
|
|
132
|
-
if (isCancel(setupChoice)) {
|
|
133
|
-
console.log(t("common.cancelled", currentLang));
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
const enabled = String(setupChoice) === "true";
|
|
137
|
-
if (choice === "langSetup") {
|
|
138
|
-
await saveSettings({
|
|
139
|
-
...settings,
|
|
140
|
-
lang: { value: settings.lang?.value, setupDone: settings.lang?.setupDone, onboarding: enabled },
|
|
141
|
-
});
|
|
142
|
-
console.log(`${t("setting.current", currentLang)}: lang.onboarding=${enabled}`);
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
await saveSettings({
|
|
146
|
-
...settings,
|
|
147
|
-
projectRoot: {
|
|
148
|
-
path: settings.projectRoot?.path,
|
|
149
|
-
setupDone: settings.projectRoot?.setupDone,
|
|
150
|
-
onboarding: enabled,
|
|
151
|
-
},
|
|
152
|
-
});
|
|
153
|
-
console.log(`${t("setting.current", currentLang)}: projectRoot.onboarding=${enabled}`);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
if (choice === "order") {
|
|
157
|
-
const currentOrder = resolveOnboardingOrder(settings);
|
|
158
|
-
const input = await text({
|
|
159
|
-
message: t("setting.onboardingOrderPrompt", currentLang),
|
|
160
|
-
initialValue: currentOrder.join(","),
|
|
161
|
-
validate: (v) => (!v.trim() ? t("common.required", currentLang) : undefined),
|
|
162
|
-
});
|
|
163
|
-
if (isCancel(input)) {
|
|
164
|
-
console.log(t("common.cancelled", currentLang));
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
const order = String(input)
|
|
168
|
-
.split(",")
|
|
169
|
-
.map((v) => v.trim())
|
|
170
|
-
.filter((v) => v === "lang" || v === "projectRoot");
|
|
171
|
-
if (!order.length) {
|
|
172
|
-
console.log(t("common.cancelled", currentLang));
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
175
|
-
await saveSettings({ ...settings, onboardingOrder: order });
|
|
176
|
-
console.log(`${t("setting.current", currentLang)}: onboardingOrder=${order.join(", ")}`);
|
|
82
|
+
console.log(t("setting.projectRootSaved", currentLang, { path: picked }));
|
|
177
83
|
}
|
|
84
|
+
return;
|
|
178
85
|
}
|
|
179
86
|
//# sourceMappingURL=setting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setting.js","sourceRoot":"","sources":["../../src/commands/setting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"setting.js","sourceRoot":"","sources":["../../src/commands/setting.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { cp, rm } from "node:fs/promises";
|
|
2
2
|
import { dirname, resolve } from "node:path";
|
|
3
|
+
import { createRequire } from "node:module";
|
|
3
4
|
import { select, isCancel, confirm } from "@clack/prompts";
|
|
4
5
|
import { createLogger } from "../core/logger.js";
|
|
5
6
|
import { loadConfigContext, resolveConfigPath, resolveOutDir } from "../core/config.js";
|
|
@@ -44,7 +45,7 @@ export async function handleSync(ctx) {
|
|
|
44
45
|
const behaviorSrc = behaviorEnabled ? resolve(buildDir, config.packs.behavior) : null;
|
|
45
46
|
const resourceSrc = resourceEnabled ? resolve(buildDir, config.packs.resource) : null;
|
|
46
47
|
if (shouldBuild && !dryRun) {
|
|
47
|
-
log("
|
|
48
|
+
log(t("sync.runBuildNow", lang));
|
|
48
49
|
const forward = ["--config", configPath];
|
|
49
50
|
if (jsonOut)
|
|
50
51
|
forward.push("--json");
|
|
@@ -55,24 +56,24 @@ export async function handleSync(ctx) {
|
|
|
55
56
|
await handleBuild({ ...ctx, argv: forward });
|
|
56
57
|
}
|
|
57
58
|
if (!(await pathExists(buildDir))) {
|
|
58
|
-
console.error(
|
|
59
|
+
console.error(t("sync.buildOutputNotFound", lang, { path: buildDir }));
|
|
59
60
|
process.exitCode = 1;
|
|
60
61
|
return;
|
|
61
62
|
}
|
|
62
63
|
if (behaviorEnabled && behaviorSrc && !(await pathExists(behaviorSrc))) {
|
|
63
|
-
console.error(
|
|
64
|
+
console.error(t("sync.behaviorOutputNotFound", lang, { path: behaviorSrc }));
|
|
64
65
|
process.exitCode = 1;
|
|
65
66
|
return;
|
|
66
67
|
}
|
|
67
68
|
if (resourceEnabled && resourceSrc && !(await pathExists(resourceSrc))) {
|
|
68
|
-
console.error(
|
|
69
|
+
console.error(t("sync.resourceOutputNotFound", lang, { path: resourceSrc }));
|
|
69
70
|
process.exitCode = 1;
|
|
70
71
|
return;
|
|
71
72
|
}
|
|
72
73
|
const targets = config.sync?.targets ?? {};
|
|
73
74
|
const targetNames = Object.keys(targets);
|
|
74
75
|
if (!targetNames.length) {
|
|
75
|
-
console.error("
|
|
76
|
+
console.error(t("sync.noTargets", lang));
|
|
76
77
|
process.exitCode = 1;
|
|
77
78
|
return;
|
|
78
79
|
}
|
|
@@ -99,7 +100,10 @@ export async function handleSync(ctx) {
|
|
|
99
100
|
const projectName = targetConfig.projectName ?? config.project.name;
|
|
100
101
|
if (dryRun) {
|
|
101
102
|
if (!jsonOut) {
|
|
102
|
-
log(
|
|
103
|
+
log(t("sync.dryRunProduct", lang, {
|
|
104
|
+
product: targetConfig.product,
|
|
105
|
+
project: projectName,
|
|
106
|
+
}));
|
|
103
107
|
}
|
|
104
108
|
else {
|
|
105
109
|
synced.push({ from: buildDir, product: targetConfig.product, projectName });
|
|
@@ -109,10 +113,11 @@ export async function handleSync(ctx) {
|
|
|
109
113
|
}
|
|
110
114
|
process.env.PROJECT_NAME = projectName;
|
|
111
115
|
process.env.MINECRAFT_PRODUCT = targetConfig.product;
|
|
112
|
-
const
|
|
116
|
+
const require = createRequire(import.meta.url);
|
|
117
|
+
const coreBuild = require("@minecraft/core-build-tasks");
|
|
113
118
|
const copyTask = coreBuild.copyTask;
|
|
114
119
|
if (!copyTask) {
|
|
115
|
-
console.error("
|
|
120
|
+
console.error(t("sync.copyTaskMissing", lang));
|
|
116
121
|
process.exitCode = 1;
|
|
117
122
|
return;
|
|
118
123
|
}
|
|
@@ -123,10 +128,15 @@ export async function handleSync(ctx) {
|
|
|
123
128
|
};
|
|
124
129
|
try {
|
|
125
130
|
await Promise.resolve(copyTask(params)());
|
|
126
|
-
log(
|
|
131
|
+
log(t("sync.syncedProduct", lang, {
|
|
132
|
+
product: targetConfig.product,
|
|
133
|
+
project: projectName,
|
|
134
|
+
}));
|
|
127
135
|
}
|
|
128
136
|
catch (err) {
|
|
129
|
-
console.error(
|
|
137
|
+
console.error(t("sync.failed", lang, {
|
|
138
|
+
error: err instanceof Error ? err.message : String(err),
|
|
139
|
+
}));
|
|
130
140
|
process.exitCode = 1;
|
|
131
141
|
}
|
|
132
142
|
if (jsonOut) {
|
|
@@ -137,12 +147,12 @@ export async function handleSync(ctx) {
|
|
|
137
147
|
}
|
|
138
148
|
// Path-based sync (previous behavior)
|
|
139
149
|
if (behaviorEnabled && !targetConfig?.behavior) {
|
|
140
|
-
console.error(
|
|
150
|
+
console.error(t("sync.targetMissingBehavior", lang, { target: targetName }));
|
|
141
151
|
process.exitCode = 1;
|
|
142
152
|
return;
|
|
143
153
|
}
|
|
144
154
|
if (resourceEnabled && !targetConfig?.resource) {
|
|
145
|
-
console.error(
|
|
155
|
+
console.error(t("sync.targetMissingResource", lang, { target: targetName }));
|
|
146
156
|
process.exitCode = 1;
|
|
147
157
|
return;
|
|
148
158
|
}
|
|
@@ -154,7 +164,7 @@ export async function handleSync(ctx) {
|
|
|
154
164
|
for (const { from, to } of tasks) {
|
|
155
165
|
if (dryRun) {
|
|
156
166
|
if (!jsonOut) {
|
|
157
|
-
log(
|
|
167
|
+
log(t("sync.dryRunSync", lang, { from, to }));
|
|
158
168
|
}
|
|
159
169
|
synced.push({ from, to });
|
|
160
170
|
continue;
|
|
@@ -163,7 +173,7 @@ export async function handleSync(ctx) {
|
|
|
163
173
|
await rm(to, { recursive: true, force: true });
|
|
164
174
|
await cp(from, to, { recursive: true, force: true });
|
|
165
175
|
if (!jsonOut)
|
|
166
|
-
log(
|
|
176
|
+
log(t("sync.synced", lang, { from, to }));
|
|
167
177
|
synced.push({ from, to });
|
|
168
178
|
}
|
|
169
179
|
if (jsonOut) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAExF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAmB;IAClD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IACpC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GACpB,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC5E,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxE,SAAS,CAAC;IACZ,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,eAAe;IAC/D,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACtE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;YAChC,OAAO,EAAE,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC;YACjC,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;YACzC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IAC9B,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,MAA4B,EAAE,IAAI,CAAC,CAAC;IAC5F,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC7B,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IACnD,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IACnD,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtF,IAAI,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|