@intecoag/inteco-cli 1.11.6 → 1.12.0-beta.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/README.md +12 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +158 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/adbBridge.d.ts +2 -0
- package/dist/modules/adbBridge.d.ts.map +1 -0
- package/dist/modules/adbBridge.js +40 -0
- package/dist/modules/adbBridge.js.map +1 -0
- package/dist/modules/adbIntentSender.d.ts +2 -0
- package/dist/modules/adbIntentSender.d.ts.map +1 -0
- package/dist/modules/adbIntentSender.js +67 -0
- package/dist/modules/adbIntentSender.js.map +1 -0
- package/dist/modules/azureSync.d.ts +4 -0
- package/dist/modules/azureSync.d.ts.map +1 -0
- package/{src → dist}/modules/azureSync.js +50 -131
- package/dist/modules/azureSync.js.map +1 -0
- package/dist/modules/bundleProduct.d.ts +2 -0
- package/dist/modules/bundleProduct.d.ts.map +1 -0
- package/{src → dist}/modules/bundleProduct.js +41 -80
- package/dist/modules/bundleProduct.js.map +1 -0
- package/dist/modules/changelog.d.ts +3 -0
- package/dist/modules/changelog.d.ts.map +1 -0
- package/dist/modules/changelog.js +45 -0
- package/dist/modules/changelog.js.map +1 -0
- package/dist/modules/configMutation.d.ts +2 -0
- package/dist/modules/configMutation.d.ts.map +1 -0
- package/{src → dist}/modules/configMutation.js +54 -101
- package/dist/modules/configMutation.js.map +1 -0
- package/dist/modules/csvMerger.d.ts +2 -0
- package/dist/modules/csvMerger.d.ts.map +1 -0
- package/dist/modules/csvMerger.js +104 -0
- package/dist/modules/csvMerger.js.map +1 -0
- package/dist/modules/deleteDB.d.ts +2 -0
- package/dist/modules/deleteDB.d.ts.map +1 -0
- package/dist/modules/deleteDB.js +75 -0
- package/dist/modules/deleteDB.js.map +1 -0
- package/dist/modules/dumpDB.d.ts +3 -0
- package/dist/modules/dumpDB.d.ts.map +1 -0
- package/{src → dist}/modules/dumpDB.js +64 -89
- package/dist/modules/dumpDB.js.map +1 -0
- package/dist/modules/dumpTableToCSV.d.ts +2 -0
- package/dist/modules/dumpTableToCSV.d.ts.map +1 -0
- package/dist/modules/dumpTableToCSV.js +128 -0
- package/dist/modules/dumpTableToCSV.js.map +1 -0
- package/dist/modules/extdSearch.d.ts +2 -0
- package/dist/modules/extdSearch.d.ts.map +1 -0
- package/{src → dist}/modules/extdSearch.js +60 -60
- package/dist/modules/extdSearch.js.map +1 -0
- package/dist/modules/githubDeploymentKey.d.ts +3 -0
- package/dist/modules/githubDeploymentKey.d.ts.map +1 -0
- package/dist/modules/githubDeploymentKey.js +241 -0
- package/dist/modules/githubDeploymentKey.js.map +1 -0
- package/dist/modules/githubDeploymentKeysList.d.ts +6 -0
- package/dist/modules/githubDeploymentKeysList.d.ts.map +1 -0
- package/dist/modules/githubDeploymentKeysList.js +185 -0
- package/dist/modules/githubDeploymentKeysList.js.map +1 -0
- package/dist/modules/githubSecurityAdvisories.d.ts +3 -0
- package/dist/modules/githubSecurityAdvisories.d.ts.map +1 -0
- package/dist/modules/githubSecurityAdvisories.js +145 -0
- package/dist/modules/githubSecurityAdvisories.js.map +1 -0
- package/dist/modules/graphqlSchemaExport.d.ts +2 -0
- package/dist/modules/graphqlSchemaExport.d.ts.map +1 -0
- package/dist/modules/graphqlSchemaExport.js +59 -0
- package/dist/modules/graphqlSchemaExport.js.map +1 -0
- package/dist/modules/importDB.d.ts +2 -0
- package/dist/modules/importDB.d.ts.map +1 -0
- package/{src → dist}/modules/importDB.js +48 -66
- package/dist/modules/importDB.js.map +1 -0
- package/dist/modules/rewriteConfig.d.ts +3 -0
- package/dist/modules/rewriteConfig.d.ts.map +1 -0
- package/dist/modules/rewriteConfig.js +75 -0
- package/dist/modules/rewriteConfig.js.map +1 -0
- package/dist/modules/setCLIConfig.d.ts +2 -0
- package/dist/modules/setCLIConfig.d.ts.map +1 -0
- package/dist/modules/setCLIConfig.js +29 -0
- package/dist/modules/setCLIConfig.js.map +1 -0
- package/dist/modules/syncConfig.d.ts +2 -0
- package/dist/modules/syncConfig.d.ts.map +1 -0
- package/{src → dist}/modules/syncConfig.js +74 -127
- package/dist/modules/syncConfig.js.map +1 -0
- package/dist/modules/t003Rewrite.d.ts +2 -0
- package/dist/modules/t003Rewrite.d.ts.map +1 -0
- package/dist/modules/t003Rewrite.js +53 -0
- package/dist/modules/t003Rewrite.js.map +1 -0
- package/dist/modules/t009Search.d.ts +2 -0
- package/dist/modules/t009Search.d.ts.map +1 -0
- package/dist/modules/t009Search.js +30 -0
- package/dist/modules/t009Search.js.map +1 -0
- package/{src → dist}/ressources/cmds.json +3 -0
- package/dist/utils/azure/azure.d.ts +24 -0
- package/dist/utils/azure/azure.d.ts.map +1 -0
- package/{src → dist}/utils/azure/azure.js +14 -21
- package/dist/utils/azure/azure.js.map +1 -0
- package/dist/utils/config/config.d.ts +27 -0
- package/dist/utils/config/config.d.ts.map +1 -0
- package/dist/utils/config/config.js +74 -0
- package/dist/utils/config/config.js.map +1 -0
- package/dist/utils/db/DB.d.ts +14 -0
- package/dist/utils/db/DB.d.ts.map +1 -0
- package/dist/utils/db/DB.js +61 -0
- package/dist/utils/db/DB.js.map +1 -0
- package/dist/utils/fs/FS.d.ts +15 -0
- package/dist/utils/fs/FS.d.ts.map +1 -0
- package/{src → dist}/utils/fs/FS.js +31 -45
- package/dist/utils/fs/FS.js.map +1 -0
- package/dist/utils/github/github.d.ts +29 -0
- package/dist/utils/github/github.d.ts.map +1 -0
- package/dist/utils/github/github.js +96 -0
- package/dist/utils/github/github.js.map +1 -0
- package/dist/utils/shell/DatabaseShell.d.ts +77 -0
- package/dist/utils/shell/DatabaseShell.d.ts.map +1 -0
- package/{src → dist}/utils/shell/DatabaseShell.js +73 -87
- package/dist/utils/shell/DatabaseShell.js.map +1 -0
- package/dist/utils/shell/DatabaseShellBuilder.d.ts +67 -0
- package/dist/utils/shell/DatabaseShellBuilder.d.ts.map +1 -0
- package/{src → dist}/utils/shell/DatabaseShellBuilder.js +50 -59
- package/dist/utils/shell/DatabaseShellBuilder.js.map +1 -0
- package/dist/utils/shell/Shell.d.ts +30 -0
- package/dist/utils/shell/Shell.d.ts.map +1 -0
- package/{src → dist}/utils/shell/Shell.js +14 -19
- package/dist/utils/shell/Shell.js.map +1 -0
- package/dist/utils/shell/ShellBuilder.d.ts +60 -0
- package/dist/utils/shell/ShellBuilder.d.ts.map +1 -0
- package/{src → dist}/utils/shell/ShellBuilder.js +23 -44
- package/dist/utils/shell/ShellBuilder.js.map +1 -0
- package/package.json +31 -8
- package/.github/dependabot.yml +0 -28
- package/.github/workflows/publish.yml +0 -31
- package/.husky/commit-msg +0 -1
- package/.vscode/settings.json +0 -6
- package/commitlint.config.mjs +0 -4
- package/src/index.js +0 -130
- package/src/modules/adbBridge.js +0 -52
- package/src/modules/adbIntentSender.js +0 -82
- package/src/modules/changelog.js +0 -60
- package/src/modules/csvMerger.js +0 -118
- package/src/modules/deleteDB.js +0 -84
- package/src/modules/dumpTableToCSV.js +0 -154
- package/src/modules/githubDeploymentKey.js +0 -265
- package/src/modules/githubDeploymentKeysList.js +0 -199
- package/src/modules/githubSecurityAdvisories.js +0 -162
- package/src/modules/graphqlSchemaExport.js +0 -61
- package/src/modules/rewriteConfig.js +0 -93
- package/src/modules/setCLIConfig.js +0 -33
- package/src/modules/t003Rewrite.js +0 -64
- package/src/modules/t009Search.js +0 -34
- package/src/utils/config/config.js +0 -70
- package/src/utils/db/DB.js +0 -54
- package/src/utils/github/github.js +0 -102
- /package/{src → dist}/ressources/wegas_p.ico +0 -0
- /package/{src → dist}/utils/config/default.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "fs";
|
|
2
|
-
import Seven from 'node-7z'
|
|
3
|
-
import sevenBin from '7zip-bin'
|
|
2
|
+
import Seven from 'node-7z';
|
|
3
|
+
import sevenBin from '7zip-bin';
|
|
4
4
|
import { Config } from "../utils/config/config.js";
|
|
5
5
|
import prompts from "prompts";
|
|
6
6
|
import chalk from "chalk";
|
|
@@ -9,22 +9,14 @@ import { dirname } from 'path';
|
|
|
9
9
|
import path from "path";
|
|
10
10
|
import ora from "ora";
|
|
11
11
|
import { cp } from "fs/promises";
|
|
12
|
-
|
|
13
12
|
const __filename = fileURLToPath(import.meta.url);
|
|
14
13
|
const __dirname = dirname(__filename);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
console.log()
|
|
18
|
-
|
|
14
|
+
export default async function bundleProduct(_cli) {
|
|
15
|
+
console.log();
|
|
19
16
|
const config = await Config.getConfig();
|
|
20
|
-
|
|
21
17
|
let success = true;
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
const configDirectories = readdirSync(config.configIndividualPathEclipse, { withFileTypes: true }).filter(dirent => dirent.isDirectory()).map(dirent => { return { title: dirent.name } })
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
const folders = readdirSync(process.cwd(), { withFileTypes: true }).filter(dirent => !dirent.isFile()).map(dirent => { return { title: dirent.name }; });
|
|
19
|
+
const configDirectories = readdirSync(config.configIndividualPathEclipse, { withFileTypes: true }).filter(dirent => dirent.isDirectory()).map(dirent => { return { title: dirent.name }; });
|
|
28
20
|
const results = await prompts([
|
|
29
21
|
{
|
|
30
22
|
// Ordnerauswahl von vorhandenen Ordner in configIndividual
|
|
@@ -48,8 +40,8 @@ export default async function bundleProduct(cli) {
|
|
|
48
40
|
message: 'Xmx-Value (Max. RAM) in GB?',
|
|
49
41
|
initial: "8",
|
|
50
42
|
validate: input => {
|
|
51
|
-
if (isNaN(input)) {
|
|
52
|
-
return "Enter a Number"
|
|
43
|
+
if (isNaN(Number(input))) {
|
|
44
|
+
return "Enter a Number";
|
|
53
45
|
}
|
|
54
46
|
return true;
|
|
55
47
|
}
|
|
@@ -63,99 +55,68 @@ export default async function bundleProduct(cli) {
|
|
|
63
55
|
},
|
|
64
56
|
], {
|
|
65
57
|
onCancel: () => {
|
|
66
|
-
console.log()
|
|
67
|
-
console.log(chalk.red("Cancelled Import!"))
|
|
68
|
-
console.log()
|
|
69
|
-
success = false
|
|
58
|
+
console.log();
|
|
59
|
+
console.log(chalk.red("Cancelled Import!"));
|
|
60
|
+
console.log();
|
|
61
|
+
success = false;
|
|
70
62
|
}
|
|
71
|
-
})
|
|
72
|
-
|
|
63
|
+
});
|
|
73
64
|
if (success) {
|
|
74
|
-
console.log()
|
|
75
|
-
|
|
76
|
-
const spinnerRemoveOld = ora("Removing old configs")
|
|
65
|
+
console.log();
|
|
66
|
+
const spinnerRemoveOld = ora("Removing old configs");
|
|
77
67
|
const configPath = path.resolve(".", results.folder, "config");
|
|
78
68
|
const configIndividualPath = path.resolve(".", results.folder, "configIndividual");
|
|
79
|
-
|
|
80
69
|
if (existsSync(configPath)) {
|
|
81
70
|
rmSync(configPath, { recursive: true, force: true });
|
|
82
71
|
}
|
|
83
|
-
|
|
84
72
|
if (existsSync(configIndividualPath)) {
|
|
85
73
|
rmSync(configIndividualPath, { recursive: true, force: true });
|
|
86
74
|
}
|
|
87
|
-
|
|
88
|
-
spinnerRemoveOld.succeed("Removed old configs")
|
|
89
|
-
|
|
75
|
+
spinnerRemoveOld.succeed("Removed old configs");
|
|
90
76
|
const spinnerConfig = ora('Copying config').start();
|
|
91
|
-
|
|
92
|
-
|
|
93
77
|
const sourceConfig = path.resolve(config.configIndividualPathEclipse, '..', "config");
|
|
94
|
-
const destConfig = path.resolve(".", results.folder, "config")
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
spinnerConfig.succeed("Config copied")
|
|
99
|
-
|
|
78
|
+
const destConfig = path.resolve(".", results.folder, "config");
|
|
79
|
+
await cp(sourceConfig, destConfig, { recursive: true });
|
|
80
|
+
spinnerConfig.succeed("Config copied");
|
|
100
81
|
const spinnerConfigIndividual = ora('Copying configIndividual: ' + results.configIndividual).start();
|
|
101
|
-
|
|
102
|
-
|
|
103
82
|
const sourceConfigIndividual = path.resolve(config.configIndividualPathEclipse, results.configIndividual);
|
|
104
|
-
const destConfigIndividual = path.resolve(".", results.folder, "configIndividual", results.configIndividual)
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
spinnerConfigIndividual.succeed("ConfigIndividual copied: " + results.configIndividual)
|
|
109
|
-
|
|
83
|
+
const destConfigIndividual = path.resolve(".", results.folder, "configIndividual", results.configIndividual);
|
|
84
|
+
await cp(sourceConfigIndividual, destConfigIndividual, { recursive: true });
|
|
85
|
+
spinnerConfigIndividual.succeed("ConfigIndividual copied: " + results.configIndividual);
|
|
110
86
|
const spinnerIcon = ora('Copying icon').start();
|
|
111
|
-
|
|
112
87
|
const sourceIcon = path.resolve(__dirname, "..", "ressources", "wegas_p.ico");
|
|
113
|
-
const destIcon = path.resolve(".", results.folder, "wegas_p.ico")
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
spinnerIcon.succeed("Icon copied")
|
|
118
|
-
|
|
88
|
+
const destIcon = path.resolve(".", results.folder, "wegas_p.ico");
|
|
89
|
+
await cp(sourceIcon, destIcon, { recursive: true });
|
|
90
|
+
spinnerIcon.succeed("Icon copied");
|
|
119
91
|
const spinnerIniRewrite = ora('Rewriting wegas.ini: -Xmx' + results.ram + "g").start();
|
|
120
|
-
|
|
121
|
-
const iniPath = path.resolve(".", results.folder, "wegas.ini")
|
|
122
|
-
|
|
92
|
+
const iniPath = path.resolve(".", results.folder, "wegas.ini");
|
|
123
93
|
let iniContent = readFileSync(iniPath, 'utf-8');
|
|
124
94
|
const updatedContent = iniContent.replace(/-Xmx\d+[mgMG]?/, `-Xmx${results.ram}g`);
|
|
125
95
|
writeFileSync(iniPath, updatedContent);
|
|
126
|
-
|
|
127
|
-
spinnerIniRewrite.succeed("wegas.ini rewritten: -Xmx" + results.ram + "g")
|
|
128
|
-
|
|
96
|
+
spinnerIniRewrite.succeed("wegas.ini rewritten: -Xmx" + results.ram + "g");
|
|
129
97
|
const spinnerRename = ora("Renaming folder: " + results.folder + " -> " + results.folderName).start();
|
|
130
|
-
renameSync(path.resolve(".", results.folder), path.resolve(".", results.folderName))
|
|
131
|
-
spinnerRename.succeed("Folder renamed: " + results.folder + " -> " + results.folderName)
|
|
132
|
-
|
|
98
|
+
renameSync(path.resolve(".", results.folder), path.resolve(".", results.folderName));
|
|
99
|
+
spinnerRename.succeed("Folder renamed: " + results.folder + " -> " + results.folderName);
|
|
133
100
|
const spinnerZIP = ora('Zipping: ' + results.folderName + ".zip").start();
|
|
134
|
-
|
|
135
|
-
const
|
|
136
|
-
const addPath = path.resolve(".", results.folderName)
|
|
101
|
+
const zipPath = path.resolve(".", results.folderName + ".zip");
|
|
102
|
+
const addPath = path.resolve(".", results.folderName);
|
|
137
103
|
const add = Seven.add(zipPath, addPath, {
|
|
138
104
|
$bin: sevenBin.path7za
|
|
139
|
-
})
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
spinnerZIP.succeed('Zipped: ' + results.folderName + ".zip")
|
|
144
|
-
|
|
105
|
+
});
|
|
106
|
+
await getPromiseFromEvent(add, "end");
|
|
107
|
+
spinnerZIP.succeed('Zipped: ' + results.folderName + ".zip");
|
|
145
108
|
const spinnerRenameRevert = ora("Renaming folder: " + results.folderName + " -> " + results.folder).start();
|
|
146
|
-
renameSync(path.resolve(".", results.folderName), path.resolve(".", results.folder))
|
|
147
|
-
spinnerRenameRevert.succeed("Folder renamed: " + results.folderName + " -> " + results.folder)
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
console.log()
|
|
109
|
+
renameSync(path.resolve(".", results.folderName), path.resolve(".", results.folder));
|
|
110
|
+
spinnerRenameRevert.succeed("Folder renamed: " + results.folderName + " -> " + results.folder);
|
|
111
|
+
console.log();
|
|
151
112
|
}
|
|
152
113
|
}
|
|
153
|
-
|
|
154
114
|
function getPromiseFromEvent(item, event) {
|
|
155
115
|
return new Promise((resolve) => {
|
|
156
116
|
const listener = (data) => {
|
|
157
117
|
resolve(data);
|
|
158
|
-
}
|
|
118
|
+
};
|
|
159
119
|
item.on(event, listener);
|
|
160
|
-
})
|
|
161
|
-
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=bundleProduct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundleProduct.js","sourceRoot":"","sources":["../../src/modules/bundleProduct.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../src/modules/changelog.ts"],"names":[],"mappings":"AAWA,iBAAe,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAoD5C;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
const OWNER = 'intecoag';
|
|
3
|
+
const REPO = 'IntecoCLI';
|
|
4
|
+
async function showChangelog() {
|
|
5
|
+
const res = await fetch(`https://api.github.com/repos/${OWNER}/${REPO}/releases`, {
|
|
6
|
+
headers: {
|
|
7
|
+
'Accept': 'application/vnd.github+json',
|
|
8
|
+
'User-Agent': `${REPO}-cli`
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
if (!res.ok) {
|
|
12
|
+
console.error(chalk.red('Failed to fetch changelog'));
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const releases = await res.json();
|
|
16
|
+
// Reverse: oldest -> newest
|
|
17
|
+
releases.reverse();
|
|
18
|
+
console.log(chalk.bold.cyan(`\nChangelog for ${OWNER}/${REPO}\n`));
|
|
19
|
+
for (const r of releases) {
|
|
20
|
+
const title = r.name || r.tag_name;
|
|
21
|
+
console.log(chalk.bold.yellow(`\n> ${title}`));
|
|
22
|
+
if (!r.body) {
|
|
23
|
+
console.log(chalk.gray(' No changelog provided'));
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
// Light formatting for Markdown-like content
|
|
27
|
+
const lines = r.body.split('\n');
|
|
28
|
+
for (const line of lines) {
|
|
29
|
+
if (line.startsWith('- ') || line.startsWith('* ')) {
|
|
30
|
+
console.log(chalk.green(` * ${line.slice(2)}`));
|
|
31
|
+
}
|
|
32
|
+
else if (line.startsWith('### ')) {
|
|
33
|
+
console.log(chalk.bold.magenta(`\n ${line.slice(4)}`));
|
|
34
|
+
}
|
|
35
|
+
else if (line.startsWith('## ')) {
|
|
36
|
+
console.log(chalk.bold.blue(`\n${line.slice(3)}`));
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.log(chalk.gray(` ${line}`));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export default showChangelog;
|
|
45
|
+
//# sourceMappingURL=changelog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/modules/changelog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,IAAI,GAAG,WAAW,CAAC;AAQzB,KAAK,UAAU,aAAa;IAC1B,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,gCAAgC,KAAK,IAAI,IAAI,WAAW,EACxD;QACE,OAAO,EAAE;YACP,QAAQ,EAAE,6BAA6B;YACvC,YAAY,EAAE,GAAG,IAAI,MAAM;SAC5B;KACF,CACF,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,EAAqB,CAAC;IAErD,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC;IAEnB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,KAAK,IAAI,IAAI,IAAI,CAAC,CACtD,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC;QAEnC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,EAAE,CAAC,CAClC,CAAC;QAEF,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QAED,6CAA6C;QAC7C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configMutation.d.ts","sourceRoot":"","sources":["../../src/modules/configMutation.ts"],"names":[],"mappings":"AAaA,wBAA8B,YAAY,kBA2GzC"}
|
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
import prompts from "prompts";
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { Config } from "../utils/config/config.js";
|
|
4
|
-
import FS from "fs"
|
|
4
|
+
import FS from "fs";
|
|
5
5
|
import * as CliFS from "../utils/fs/FS.js";
|
|
6
6
|
import YAML from "yaml";
|
|
7
7
|
import { YAMLMap, YAMLSeq } from "yaml";
|
|
8
8
|
import fg from "fast-glob";
|
|
9
9
|
import path from "path";
|
|
10
|
-
|
|
11
10
|
export default async function mutateConfig() {
|
|
12
|
-
console.log()
|
|
13
|
-
|
|
11
|
+
console.log();
|
|
14
12
|
const config = await Config.getConfig();
|
|
15
13
|
const configDirectories = [
|
|
16
14
|
{ title: '[Update all]', value: '*' },
|
|
17
15
|
...FS.readdirSync(config.configIndividualPathEclipse, { withFileTypes: true }).filter(dirent => dirent.isDirectory())
|
|
18
|
-
.map(dirent => { return { title: dirent.name, value: dirent.name } })
|
|
19
|
-
]
|
|
20
|
-
|
|
16
|
+
.map(dirent => { return { title: dirent.name, value: dirent.name }; })
|
|
17
|
+
];
|
|
21
18
|
let success = true;
|
|
22
|
-
|
|
23
19
|
const responses = await prompts([
|
|
24
20
|
{
|
|
25
21
|
type: 'select',
|
|
@@ -35,7 +31,7 @@ export default async function mutateConfig() {
|
|
|
35
31
|
type: 'toggle',
|
|
36
32
|
name: 'mergeClients',
|
|
37
33
|
message: 'Include Mand? (Apply changes to 1_, 2_, ...)',
|
|
38
|
-
|
|
34
|
+
initial: false,
|
|
39
35
|
},
|
|
40
36
|
{
|
|
41
37
|
type: 'autocomplete',
|
|
@@ -59,16 +55,11 @@ export default async function mutateConfig() {
|
|
|
59
55
|
success = false;
|
|
60
56
|
}
|
|
61
57
|
});
|
|
62
|
-
|
|
63
|
-
|
|
64
58
|
if (success) {
|
|
65
|
-
const sourceConfigs = await CliFS.FS.filePicker(path.join(path.dirname(config.configIndividualPathEclipse), "config", "yaml"),
|
|
66
|
-
path.join(path.dirname(config.configIndividualPathEclipse), "config", "yaml"));
|
|
67
|
-
|
|
59
|
+
const sourceConfigs = await CliFS.FS.filePicker(path.join(path.dirname(config.configIndividualPathEclipse), "config", "yaml"), path.join(path.dirname(config.configIndividualPathEclipse), "config", "yaml"));
|
|
68
60
|
const configsToUpdate = responses.configDest == '*'
|
|
69
61
|
? FS.readdirSync(config.configIndividualPathEclipse, { withFileTypes: true }).filter(f => f.isDirectory()).map(f => f.name)
|
|
70
62
|
: [responses.configDest];
|
|
71
|
-
|
|
72
63
|
switch (responses.mergeType) {
|
|
73
64
|
case 'only_create':
|
|
74
65
|
await processAddMissing(sourceConfigs, config.configIndividualPathEclipse, configsToUpdate, responses.mergeClients, responses.dryRun);
|
|
@@ -80,9 +71,8 @@ export default async function mutateConfig() {
|
|
|
80
71
|
await processMergeOverwrite(sourceConfigs, config.configIndividualPathEclipse, configsToUpdate, responses.mergeClients, responses.dryRun);
|
|
81
72
|
break;
|
|
82
73
|
}
|
|
83
|
-
|
|
84
74
|
if (responses.dryRun) {
|
|
85
|
-
console.log()
|
|
75
|
+
console.log();
|
|
86
76
|
const confirmationResults = await prompts([
|
|
87
77
|
{
|
|
88
78
|
type: 'confirm',
|
|
@@ -97,9 +87,8 @@ export default async function mutateConfig() {
|
|
|
97
87
|
console.log();
|
|
98
88
|
success = false;
|
|
99
89
|
}
|
|
100
|
-
})
|
|
101
|
-
|
|
102
|
-
if(confirmationResults.confirmation){
|
|
90
|
+
});
|
|
91
|
+
if (confirmationResults.confirmation) {
|
|
103
92
|
switch (responses.mergeType) {
|
|
104
93
|
case 'only_create':
|
|
105
94
|
await processAddMissing(sourceConfigs, config.configIndividualPathEclipse, configsToUpdate, responses.mergeClients, false);
|
|
@@ -116,65 +105,53 @@ export default async function mutateConfig() {
|
|
|
116
105
|
console.log();
|
|
117
106
|
}
|
|
118
107
|
}
|
|
119
|
-
|
|
120
108
|
async function processMergeOverwrite(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun) {
|
|
121
|
-
await processInEachFile(filesToUpdate, configIndividualPathEclipse,
|
|
122
|
-
configsToUpdate, mergeClients, dryRun, mergeOverwriteNodes);
|
|
109
|
+
await processInEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, mergeOverwriteNodes);
|
|
123
110
|
}
|
|
124
|
-
|
|
125
111
|
async function processRemoveMissing(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun) {
|
|
126
|
-
await processInEachFile(filesToUpdate, configIndividualPathEclipse,
|
|
127
|
-
configsToUpdate, mergeClients, dryRun, removeMissingNodes);
|
|
112
|
+
await processInEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, removeMissingNodes);
|
|
128
113
|
}
|
|
129
|
-
|
|
130
114
|
async function processAddMissing(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun) {
|
|
131
|
-
await processInEachFile(filesToUpdate, configIndividualPathEclipse,
|
|
132
|
-
configsToUpdate, mergeClients, dryRun, addMissingNodes);
|
|
115
|
+
await processInEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, addMissingNodes);
|
|
133
116
|
}
|
|
134
|
-
|
|
135
117
|
async function processEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, processAction) {
|
|
136
118
|
let updatedFiles = 0;
|
|
137
119
|
const globalConfig = path.join(path.dirname(configIndividualPathEclipse), "config");
|
|
138
|
-
for(const file of filesToUpdate) {
|
|
139
|
-
for(const c of configsToUpdate) {
|
|
120
|
+
for (const file of filesToUpdate) {
|
|
121
|
+
for (const c of configsToUpdate) {
|
|
140
122
|
const individualConfigPath = path.join(configIndividualPathEclipse, c, "yaml", file);
|
|
141
123
|
const relatedConfigsForFile = await getRelatedConfigs(individualConfigPath, mergeClients);
|
|
142
|
-
for(const config of relatedConfigsForFile) {
|
|
124
|
+
for (const config of relatedConfigsForFile) {
|
|
143
125
|
const hasUpdates = processAction(path.join(globalConfig, "yaml", file), config, dryRun);
|
|
144
|
-
if(hasUpdates)
|
|
126
|
+
if (hasUpdates)
|
|
127
|
+
updatedFiles++;
|
|
145
128
|
}
|
|
146
129
|
}
|
|
147
130
|
}
|
|
148
|
-
|
|
149
131
|
console.log();
|
|
150
132
|
console.log(chalk.green(`Summary: Updated ${updatedFiles} files.`));
|
|
151
133
|
if (dryRun) {
|
|
152
|
-
console.log(chalk.yellow("Dry run complete
|
|
153
|
-
}
|
|
134
|
+
console.log(chalk.yellow("Dry run complete - no changes were made."));
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
154
137
|
console.log(chalk.green("Config mutate completed successfully."));
|
|
155
138
|
}
|
|
156
139
|
}
|
|
157
|
-
|
|
158
140
|
// Loop through each file in filesToUpdate and executes processAction
|
|
159
141
|
async function processInEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, processAction) {
|
|
160
|
-
return await processEachFile(filesToUpdate, configIndividualPathEclipse,
|
|
161
|
-
configsToUpdate, mergeClients, dryRun,
|
|
162
|
-
(globalConfig, individualConfig, dryRun) => processInFile(globalConfig, individualConfig, dryRun, processAction));
|
|
142
|
+
return await processEachFile(filesToUpdate, configIndividualPathEclipse, configsToUpdate, mergeClients, dryRun, (globalConfig, individualConfig, dryRunFlag) => processInFile(globalConfig, individualConfig, dryRunFlag, processAction));
|
|
163
143
|
}
|
|
164
|
-
|
|
165
144
|
// Executes processAction for a yaml config file
|
|
166
145
|
function processInFile(compareFrom, compareTo, dryRun, processAction) {
|
|
167
146
|
try {
|
|
168
|
-
if(!FS.existsSync(compareFrom) || !FS.existsSync(compareTo))
|
|
147
|
+
if (!FS.existsSync(compareFrom) || !FS.existsSync(compareTo))
|
|
148
|
+
return false;
|
|
169
149
|
const fromDocument = YAML.parseDocument(FS.readFileSync(compareFrom, "utf-8"));
|
|
170
150
|
const toDocument = YAML.parseDocument(FS.readFileSync(compareTo, "utf-8"));
|
|
171
|
-
|
|
172
151
|
const hasChanges = processAction(fromDocument.contents, toDocument.contents);
|
|
173
152
|
const resultText = toDocument.toString();
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if(hasChanges) {
|
|
177
|
-
if(dryRun) {
|
|
153
|
+
if (hasChanges) {
|
|
154
|
+
if (dryRun) {
|
|
178
155
|
console.debug(chalk.gray(`[Debug] From file ${compareFrom}`));
|
|
179
156
|
console.log(chalk.green(`[DryRun] Would Update file: ${compareTo}`));
|
|
180
157
|
}
|
|
@@ -185,73 +162,62 @@ function processInFile(compareFrom, compareTo, dryRun, processAction) {
|
|
|
185
162
|
}
|
|
186
163
|
return hasChanges;
|
|
187
164
|
}
|
|
188
|
-
catch(error) {
|
|
189
|
-
|
|
190
|
-
|
|
165
|
+
catch (error) {
|
|
166
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
167
|
+
if (dryRun) {
|
|
168
|
+
console.log(chalk.red(`[DryRun] Error in file: ${compareFrom} <-> ${compareTo}: ${message}`));
|
|
191
169
|
}
|
|
192
170
|
else {
|
|
193
|
-
console.log(chalk.red(`Could not update file ${compareFrom} <-> ${compareTo}: ${
|
|
171
|
+
console.log(chalk.red(`Could not update file ${compareFrom} <-> ${compareTo}: ${message}`));
|
|
194
172
|
}
|
|
195
173
|
return false;
|
|
196
174
|
}
|
|
197
175
|
}
|
|
198
|
-
|
|
199
176
|
// Returns related configs for a base config file (config.yaml, 1_config.yaml, 2_config.yaml, ...)
|
|
200
177
|
async function getRelatedConfigs(file, withClients) {
|
|
201
178
|
const dir = path.dirname(file);
|
|
202
179
|
const ext = path.extname(file);
|
|
203
180
|
const name = path.basename(file, ext);
|
|
204
|
-
|
|
205
181
|
let patterns = [
|
|
206
182
|
path.join(dir, `${name}${ext}`), // name.yaml
|
|
207
183
|
];
|
|
208
|
-
|
|
209
|
-
if(withClients)
|
|
184
|
+
if (withClients)
|
|
210
185
|
patterns.push(path.join(dir, `*_${name}${ext}`)); // *_name.yaml (für mandanten)
|
|
211
|
-
|
|
212
186
|
patterns = patterns.map(p => p.replaceAll(path.sep, '/'));
|
|
213
|
-
|
|
214
187
|
return (await fg(patterns, {
|
|
215
188
|
onlyFiles: true,
|
|
216
189
|
unique: true
|
|
217
190
|
})).map(f => f.replaceAll('/', path.sep));
|
|
218
191
|
}
|
|
219
|
-
|
|
220
192
|
// only_create
|
|
221
193
|
function addMissingNodes(fromNode, toNode) {
|
|
222
194
|
let hasChanges = false;
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
195
|
+
if (!fromNode || !toNode)
|
|
196
|
+
return false;
|
|
226
197
|
if (fromNode instanceof YAMLMap && toNode instanceof YAMLMap) {
|
|
227
198
|
for (const pair of fromNode.items) {
|
|
228
199
|
const keyNode = pair.key;
|
|
229
200
|
const fromVal = pair.value;
|
|
230
|
-
|
|
231
201
|
if (!toNode.has(keyNode)) {
|
|
232
202
|
toNode.items.push(pair);
|
|
233
203
|
hasChanges = true;
|
|
234
204
|
continue;
|
|
235
205
|
}
|
|
236
|
-
|
|
237
206
|
const toVal = toNode.get(keyNode, true);
|
|
238
|
-
hasChanges
|
|
207
|
+
hasChanges = hasChanges || addMissingNodes(fromVal, toVal);
|
|
239
208
|
}
|
|
240
209
|
return hasChanges;
|
|
241
210
|
}
|
|
242
|
-
|
|
243
211
|
if (fromNode instanceof YAMLSeq && toNode instanceof YAMLSeq) {
|
|
244
212
|
for (const fromItem of fromNode.items) {
|
|
245
213
|
const fromJson = nodeToJs(fromItem);
|
|
246
214
|
let exists = false;
|
|
247
|
-
|
|
248
215
|
for (const toItem of toNode.items) {
|
|
249
216
|
if (deepEqual(fromJson, nodeToJs(toItem))) {
|
|
250
217
|
exists = true;
|
|
251
218
|
break;
|
|
252
219
|
}
|
|
253
220
|
}
|
|
254
|
-
|
|
255
221
|
if (!exists) {
|
|
256
222
|
toNode.items.push(fromItem);
|
|
257
223
|
hasChanges = true;
|
|
@@ -259,36 +225,31 @@ function addMissingNodes(fromNode, toNode) {
|
|
|
259
225
|
}
|
|
260
226
|
return hasChanges;
|
|
261
227
|
}
|
|
228
|
+
return hasChanges;
|
|
262
229
|
}
|
|
263
|
-
|
|
264
230
|
// remove_missing
|
|
265
231
|
function removeMissingNodes(fromNode, toNode) {
|
|
266
232
|
let hasChanges = false;
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
233
|
+
if (!fromNode || !toNode)
|
|
234
|
+
return false;
|
|
270
235
|
if (fromNode instanceof YAMLMap && toNode instanceof YAMLMap) {
|
|
271
236
|
for (let i = toNode.items.length - 1; i >= 0; i--) {
|
|
272
237
|
const toPair = toNode.items[i];
|
|
273
238
|
const keyNode = toPair.key;
|
|
274
|
-
|
|
275
239
|
if (!fromNode.has(keyNode)) {
|
|
276
240
|
toNode.items.splice(i, 1);
|
|
277
241
|
hasChanges = true;
|
|
278
242
|
continue;
|
|
279
243
|
}
|
|
280
|
-
|
|
281
244
|
const fromVal = fromNode.get(keyNode, true);
|
|
282
|
-
hasChanges
|
|
245
|
+
hasChanges = hasChanges || removeMissingNodes(fromVal, toPair.value);
|
|
283
246
|
}
|
|
284
247
|
return hasChanges;
|
|
285
248
|
}
|
|
286
|
-
|
|
287
249
|
if (fromNode instanceof YAMLSeq && toNode instanceof YAMLSeq) {
|
|
288
250
|
for (let i = toNode.items.length - 1; i >= 0; i--) {
|
|
289
251
|
const toItem = toNode.items[i];
|
|
290
252
|
const toJson = nodeToJs(toItem);
|
|
291
|
-
|
|
292
253
|
let exists = false;
|
|
293
254
|
for (const fromItem of fromNode.items) {
|
|
294
255
|
if (deepEqual(toJson, nodeToJs(fromItem))) {
|
|
@@ -296,7 +257,6 @@ function removeMissingNodes(fromNode, toNode) {
|
|
|
296
257
|
break;
|
|
297
258
|
}
|
|
298
259
|
}
|
|
299
|
-
|
|
300
260
|
if (!exists) {
|
|
301
261
|
toNode.items.splice(i, 1);
|
|
302
262
|
hasChanges = true;
|
|
@@ -304,57 +264,50 @@ function removeMissingNodes(fromNode, toNode) {
|
|
|
304
264
|
}
|
|
305
265
|
return hasChanges;
|
|
306
266
|
}
|
|
307
|
-
|
|
308
267
|
return false;
|
|
309
268
|
}
|
|
310
|
-
|
|
311
269
|
// create_update_overwrite
|
|
312
270
|
function mergeOverwriteNodes(fromNode, toNode) {
|
|
313
271
|
let hasChanges = false;
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
272
|
+
if (!fromNode || !toNode)
|
|
273
|
+
return false;
|
|
317
274
|
if (fromNode instanceof YAMLMap && toNode instanceof YAMLMap) {
|
|
318
275
|
for (const fromPair of fromNode.items) {
|
|
319
276
|
const keyNode = fromPair.key;
|
|
320
277
|
const fromVal = fromPair.value;
|
|
321
|
-
|
|
322
278
|
if (!toNode.has(keyNode)) {
|
|
323
279
|
toNode.items.push(fromPair);
|
|
324
280
|
hasChanges = true;
|
|
325
281
|
continue;
|
|
326
282
|
}
|
|
327
|
-
|
|
328
283
|
const toVal = toNode.get(keyNode, true);
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
fromVal
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
hasChanges |= mergeOverwriteNodes(fromVal, toVal);
|
|
335
|
-
} else {
|
|
284
|
+
if (fromVal?.constructor === toVal?.constructor &&
|
|
285
|
+
(fromVal instanceof YAMLMap || fromVal instanceof YAMLSeq)) {
|
|
286
|
+
hasChanges = hasChanges || mergeOverwriteNodes(fromVal, toVal);
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
336
289
|
toNode.set(keyNode, fromVal);
|
|
337
290
|
hasChanges = true;
|
|
338
291
|
}
|
|
339
292
|
}
|
|
340
293
|
return hasChanges;
|
|
341
294
|
}
|
|
342
|
-
|
|
343
295
|
if (fromNode instanceof YAMLSeq && toNode instanceof YAMLSeq) {
|
|
344
296
|
toNode.items = [...fromNode.items];
|
|
345
297
|
return true;
|
|
346
298
|
}
|
|
347
|
-
|
|
348
299
|
return false;
|
|
349
300
|
}
|
|
350
|
-
|
|
351
|
-
|
|
352
301
|
function nodeToJs(node) {
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
302
|
+
if (node && typeof node === "object") {
|
|
303
|
+
const withToJson = node;
|
|
304
|
+
if (typeof withToJson.toJSON === "function") {
|
|
305
|
+
return withToJson.toJSON();
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return node;
|
|
356
309
|
}
|
|
357
|
-
|
|
358
310
|
function deepEqual(a, b) {
|
|
359
311
|
return JSON.stringify(a) === JSON.stringify(b);
|
|
360
|
-
}
|
|
312
|
+
}
|
|
313
|
+
//# sourceMappingURL=configMutation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configMutation.js","sourceRoot":"","sources":["../../src/modules/configMutation.ts"],"names":[],"mappings":"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"}
|