@unisphere/cli 2.3.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -21,11 +21,11 @@ const debugError = debug_1.exportLangsDebug.extend(':error');
|
|
|
21
21
|
const { envVariables } = (0, get_env_variables_1.getEnvVariables)();
|
|
22
22
|
const createExportCommand = (parentCommand) => {
|
|
23
23
|
const command = parentCommand.command('export');
|
|
24
|
-
const tagsCheckOption = new commander_1.Option('--no-tags-check', 'bypass github tags checks');
|
|
24
|
+
const tagsCheckOption = new commander_1.Option('--no-tags-check', 'bypass github tags checks and skip git checkout (use current branch state)');
|
|
25
25
|
tagsCheckOption.defaultValue = true;
|
|
26
|
-
tagsCheckOption.hidden =
|
|
26
|
+
tagsCheckOption.hidden = false;
|
|
27
27
|
command
|
|
28
|
-
.description('export languages to zip file')
|
|
28
|
+
.description('export languages to zip file (packages, runtimes, and applications)')
|
|
29
29
|
.option('--cwd <name>', 'the working directory (for development only)')
|
|
30
30
|
.option('--verbose', 'output debug logs', false)
|
|
31
31
|
.option('--forceMain', 'force checkout to main branch', false)
|
|
@@ -34,6 +34,7 @@ const createExportCommand = (parentCommand) => {
|
|
|
34
34
|
.action((options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
35
35
|
const cwd = options.cwd || process.cwd();
|
|
36
36
|
const forceMain = options.forceMain;
|
|
37
|
+
const tagsCheck = options.tagsCheck;
|
|
37
38
|
const task = new listr2_1.Listr([
|
|
38
39
|
{
|
|
39
40
|
title: 'Getting workspace',
|
|
@@ -46,7 +47,8 @@ const createExportCommand = (parentCommand) => {
|
|
|
46
47
|
throw new Error(`No .unisphere file found in the directory`);
|
|
47
48
|
}
|
|
48
49
|
ctx.workspace = workspace;
|
|
49
|
-
ctx.
|
|
50
|
+
ctx.resolvedElements = {};
|
|
51
|
+
ctx.processedCount = 0;
|
|
50
52
|
}),
|
|
51
53
|
},
|
|
52
54
|
{
|
|
@@ -55,6 +57,10 @@ const createExportCommand = (parentCommand) => {
|
|
|
55
57
|
ctx.exportedFolderDest = yield (0, artifacts_1.createArtifactsFolder)(path.join('_languages'));
|
|
56
58
|
ctx.exportedZipPath = yield (0, artifacts_1.createArtifactsFolder)(path.join('languages'));
|
|
57
59
|
ctx.exportedZipPath = path.join(ctx.exportedZipPath, `${ctx.workspace.config.company}-${ctx.workspace.config.name}.zip`);
|
|
60
|
+
// Create subfolders for each element type
|
|
61
|
+
fs.mkdirSync(path.join(ctx.exportedFolderDest, 'packages'), { recursive: true });
|
|
62
|
+
fs.mkdirSync(path.join(ctx.exportedFolderDest, 'runtimes'), { recursive: true });
|
|
63
|
+
fs.mkdirSync(path.join(ctx.exportedFolderDest, 'applications'), { recursive: true });
|
|
58
64
|
}),
|
|
59
65
|
},
|
|
60
66
|
{
|
|
@@ -69,111 +75,34 @@ const createExportCommand = (parentCommand) => {
|
|
|
69
75
|
{
|
|
70
76
|
title: `Checking packages with languages`,
|
|
71
77
|
task: (ctx, task) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
enFilePath,
|
|
86
|
-
hasGithubTag,
|
|
87
|
-
expectedGithubTag,
|
|
88
|
-
version,
|
|
89
|
-
status: 'in-progress',
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
task.title = 'No packages in workspace';
|
|
95
|
-
ctx.skipAll = true;
|
|
96
|
-
}
|
|
97
|
-
for (const [packageName, { expectedGithubTag, enFilePath, widgetName },] of Object.entries(ctx.resolvedPackages)) {
|
|
98
|
-
tasks.add({
|
|
99
|
-
title: `Checking package '${packageName}' with tag ${expectedGithubTag}`,
|
|
100
|
-
task: (ctx, task) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
101
|
-
const tasks = task.newListr([], {
|
|
102
|
-
concurrent: false,
|
|
103
|
-
exitOnError: false,
|
|
104
|
-
});
|
|
105
|
-
const tag = `refs/tags/${expectedGithubTag}`;
|
|
106
|
-
const { stdout } = yield execa('git', ['checkout', tag], {
|
|
107
|
-
cwd,
|
|
108
|
-
});
|
|
109
|
-
(0, debug_1.exportLangsDebug)(`stdout of git checkout tag ${tag}: `, stdout);
|
|
110
|
-
if (forceMain) {
|
|
111
|
-
yield execa('git', ['checkout', 'main'], {
|
|
112
|
-
cwd,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
const fileExists = fs.existsSync(enFilePath);
|
|
116
|
-
ctx.resolvedPackages[packageName].status = fileExists
|
|
117
|
-
? 'processed'
|
|
118
|
-
: 'skipped';
|
|
119
|
-
if (!fileExists) {
|
|
120
|
-
task.title = `Skipping package '${packageName}' no languages found tag ${expectedGithubTag}`;
|
|
121
|
-
task.skip();
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
else if (fileExists) {
|
|
125
|
-
tasks.add({
|
|
126
|
-
title: `Exporting languages for package ${packageName}`,
|
|
127
|
-
skip: (ctx) => ctx.skipAll,
|
|
128
|
-
task: (ctx) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
129
|
-
const { sourceRoot, expectedGithubTag, status } = ctx.resolvedPackages[packageName];
|
|
130
|
-
const currentPackageDest = path.join(ctx.exportedFolderDest, packageName);
|
|
131
|
-
fs.mkdirSync(currentPackageDest, { recursive: true });
|
|
132
|
-
(0, debug_1.exportLangsDebug)(`Exporting languages for package ${packageName} enFilePath: ${enFilePath}, destFolder: ${currentPackageDest}`);
|
|
133
|
-
const tag = `refs/tags/${expectedGithubTag}`;
|
|
134
|
-
const { stdout } = yield execa('git', ['checkout', tag], {
|
|
135
|
-
cwd,
|
|
136
|
-
});
|
|
137
|
-
console.log(`stdout of git checkout tag ${tag}: `, stdout);
|
|
138
|
-
if (forceMain) {
|
|
139
|
-
yield execa('git', ['checkout', 'main'], {
|
|
140
|
-
cwd,
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
const params = {
|
|
144
|
-
dest: currentPackageDest,
|
|
145
|
-
EN_FILE_PATH: path.resolve(cwd, sourceRoot, lang_path_1.EN_FILE_PATH),
|
|
146
|
-
LANG_FILES_FOLDER: path.resolve(cwd, sourceRoot, lang_path_1.LANG_FILES_FOLDER),
|
|
147
|
-
DB_FILES_FOLDER: path.resolve(cwd, sourceRoot, lang_path_1.DB_FILES_FOLDER),
|
|
148
|
-
};
|
|
149
|
-
yield (0, export_langs_1.exportLangs)(params);
|
|
150
|
-
const info = {
|
|
151
|
-
widgetName,
|
|
152
|
-
packageName,
|
|
153
|
-
tag: expectedGithubTag
|
|
154
|
-
};
|
|
155
|
-
yield fsExtra.writeFile(path.join(currentPackageDest, 'info.json'), JSON.stringify(info, null, 2));
|
|
156
|
-
}),
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
return tasks;
|
|
160
|
-
}),
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
return tasks;
|
|
78
|
+
return processElementType(ctx, task, 'packages', cwd, tagsCheck, forceMain);
|
|
79
|
+
}),
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
title: `Checking runtimes with languages`,
|
|
83
|
+
task: (ctx, task) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
84
|
+
return processElementType(ctx, task, 'runtimes', cwd, tagsCheck, forceMain);
|
|
85
|
+
}),
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
title: `Checking applications with languages`,
|
|
89
|
+
task: (ctx, task) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
+
return processElementType(ctx, task, 'applications', cwd, tagsCheck, forceMain);
|
|
164
91
|
}),
|
|
165
92
|
},
|
|
166
93
|
{
|
|
167
94
|
title: `Creating zip file`,
|
|
168
95
|
skip: (ctx) => {
|
|
169
|
-
|
|
96
|
+
const processedElements = Object.values(ctx.resolvedElements).filter((e) => e.status === 'processed');
|
|
97
|
+
if (processedElements.length > 0) {
|
|
170
98
|
return false;
|
|
171
99
|
}
|
|
172
|
-
return
|
|
100
|
+
return 'No elements with languages found';
|
|
173
101
|
},
|
|
174
102
|
task: (ctx, task) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
175
103
|
yield (0, utils_2.zipDirectory)(ctx.exportedFolderDest, ctx.exportedZipPath);
|
|
176
|
-
|
|
104
|
+
const processedElements = Object.values(ctx.resolvedElements).filter((e) => e.status === 'processed');
|
|
105
|
+
task.title = `Created zip file: "${ctx.exportedZipPath}" (${processedElements.length} elements)`;
|
|
177
106
|
}),
|
|
178
107
|
},
|
|
179
108
|
], (0, defaults_1.getDefaultListrOptions)());
|
|
@@ -182,4 +111,104 @@ const createExportCommand = (parentCommand) => {
|
|
|
182
111
|
return command;
|
|
183
112
|
};
|
|
184
113
|
exports.createExportCommand = createExportCommand;
|
|
114
|
+
function processElementType(ctx, task, elementType, cwd, tagsCheck, forceMain) {
|
|
115
|
+
const tasks = task.newListr([], {
|
|
116
|
+
concurrent: false,
|
|
117
|
+
exitOnError: false,
|
|
118
|
+
});
|
|
119
|
+
const elements = ctx.workspace.config.elements[elementType] || {};
|
|
120
|
+
if (Object.keys(elements).length === 0) {
|
|
121
|
+
task.title = `No ${elementType} in workspace`;
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
// Resolve all elements of this type
|
|
125
|
+
for (const [elementName, elementConfig] of Object.entries(elements)) {
|
|
126
|
+
const { sourceRoot, hasGithubTag, version, expectedGithubTag } = elementConfig;
|
|
127
|
+
const enFilePath = path.resolve(cwd, sourceRoot, lang_path_1.EN_FILE_PATH);
|
|
128
|
+
const key = `${elementType}:${elementName}`;
|
|
129
|
+
ctx.resolvedElements[key] = {
|
|
130
|
+
widgetName: `unisphere.widget.${ctx.workspace.config.name}`,
|
|
131
|
+
sourceRoot,
|
|
132
|
+
elementName,
|
|
133
|
+
elementType,
|
|
134
|
+
enFilePath,
|
|
135
|
+
hasGithubTag,
|
|
136
|
+
expectedGithubTag,
|
|
137
|
+
version,
|
|
138
|
+
status: 'in-progress',
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
// Process each element
|
|
142
|
+
for (const [key, element] of Object.entries(ctx.resolvedElements)) {
|
|
143
|
+
if (!key.startsWith(`${elementType}:`))
|
|
144
|
+
continue;
|
|
145
|
+
const { expectedGithubTag, enFilePath, widgetName, elementName, sourceRoot } = element;
|
|
146
|
+
tasks.add({
|
|
147
|
+
title: `Checking ${elementType.slice(0, -1)} '${elementName}' with tag ${expectedGithubTag}`,
|
|
148
|
+
task: (ctx, innerTask) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
149
|
+
const innerTasks = innerTask.newListr([], {
|
|
150
|
+
concurrent: false,
|
|
151
|
+
exitOnError: false,
|
|
152
|
+
});
|
|
153
|
+
const tag = `refs/tags/${expectedGithubTag}`;
|
|
154
|
+
// Only checkout git tag if tagsCheck is enabled
|
|
155
|
+
if (tagsCheck) {
|
|
156
|
+
const { stdout } = yield execa('git', ['checkout', tag], {
|
|
157
|
+
cwd,
|
|
158
|
+
});
|
|
159
|
+
(0, debug_1.exportLangsDebug)(`stdout of git checkout tag ${tag}: `, stdout);
|
|
160
|
+
if (forceMain) {
|
|
161
|
+
yield execa('git', ['checkout', 'main'], {
|
|
162
|
+
cwd,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
(0, debug_1.exportLangsDebug)(`Skipping git checkout for tag ${tag} (--no-tags-check)`);
|
|
168
|
+
}
|
|
169
|
+
const fileExists = fs.existsSync(enFilePath);
|
|
170
|
+
ctx.resolvedElements[key].status = fileExists ? 'processed' : 'skipped';
|
|
171
|
+
if (!fileExists) {
|
|
172
|
+
innerTask.title = `Skipping ${elementType.slice(0, -1)} '${elementName}' no languages found`;
|
|
173
|
+
innerTask.skip();
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
innerTasks.add({
|
|
177
|
+
title: `Exporting languages for ${elementType.slice(0, -1)} ${elementName}`,
|
|
178
|
+
skip: () => ctx.skipAll,
|
|
179
|
+
task: () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
180
|
+
// Create destination folder: elementType/elementName
|
|
181
|
+
const currentElementDest = path.join(ctx.exportedFolderDest, elementType, elementName);
|
|
182
|
+
fs.mkdirSync(currentElementDest, { recursive: true });
|
|
183
|
+
(0, debug_1.exportLangsDebug)(`Exporting languages for ${elementType.slice(0, -1)} ${elementName} enFilePath: ${enFilePath}, destFolder: ${currentElementDest}`);
|
|
184
|
+
// Only checkout git tag if tagsCheck is enabled
|
|
185
|
+
if (tagsCheck) {
|
|
186
|
+
const { stdout } = yield execa('git', ['checkout', tag], { cwd });
|
|
187
|
+
console.log(`stdout of git checkout tag ${tag}: `, stdout);
|
|
188
|
+
if (forceMain) {
|
|
189
|
+
yield execa('git', ['checkout', 'main'], { cwd });
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
const params = {
|
|
193
|
+
dest: currentElementDest,
|
|
194
|
+
EN_FILE_PATH: path.resolve(cwd, sourceRoot, lang_path_1.EN_FILE_PATH),
|
|
195
|
+
LANG_FILES_FOLDER: path.resolve(cwd, sourceRoot, lang_path_1.LANG_FILES_FOLDER),
|
|
196
|
+
DB_FILES_FOLDER: path.resolve(cwd, sourceRoot, lang_path_1.DB_FILES_FOLDER),
|
|
197
|
+
};
|
|
198
|
+
yield (0, export_langs_1.exportLangs)(params);
|
|
199
|
+
const info = {
|
|
200
|
+
widgetName,
|
|
201
|
+
elementName,
|
|
202
|
+
elementType,
|
|
203
|
+
tag: expectedGithubTag,
|
|
204
|
+
};
|
|
205
|
+
yield fsExtra.writeFile(path.join(currentElementDest, 'info.json'), JSON.stringify(info, null, 2));
|
|
206
|
+
}),
|
|
207
|
+
});
|
|
208
|
+
return innerTasks;
|
|
209
|
+
}),
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
return tasks;
|
|
213
|
+
}
|
|
185
214
|
//# sourceMappingURL=command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../../../../packages/unisphere-cli/src/lib/commands/language/export/command.ts"],"names":[],"mappings":";;;;AAAA,yCAAsD;AACtD,mCAA+B;AAC/B,gDAAwD;AACxD,kEAA2E;AAC3E,6DAAwE;AAExE,6BAA6B;AAC7B,yBAAyB;AACzB,oCAAoC;AACpC,iDAA6C;AAC7C,mCAA2C;AAC3C,wDAAiE;AACjE,oCAAwC;AACxC,+BAA+B;AAC/B,kFAA6E;AAC7E,4CAAgF;AAChF,MAAM,UAAU,GAAG,wBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAErD,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,mCAAe,GAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../../../../packages/unisphere-cli/src/lib/commands/language/export/command.ts"],"names":[],"mappings":"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"}
|