web-architect-cli 1.0.8 → 1.1.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/bin/index.js +187 -123
- package/package.json +4 -4
package/bin/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
// ==========================================
|
|
4
|
+
// 0. FIX PARA WINDOWS (Emojis & UTF-8)
|
|
5
|
+
// ==========================================
|
|
4
6
|
if (process.platform === "win32") {
|
|
5
7
|
try {
|
|
6
8
|
require("child_process").execSync("chcp 65001", { stdio: 'ignore' });
|
|
@@ -34,7 +36,6 @@ console.log(' 🤖 SMART COMMIT - ANÁLISE DINÂMICA');
|
|
|
34
36
|
console.log('=============================================');
|
|
35
37
|
|
|
36
38
|
try {
|
|
37
|
-
// 1. Pega os arquivos alterados (git status --porcelain)
|
|
38
39
|
const statusOutput = execSync('git status --porcelain').toString();
|
|
39
40
|
|
|
40
41
|
if (!statusOutput.trim()) {
|
|
@@ -42,7 +43,6 @@ try {
|
|
|
42
43
|
process.exit(0);
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
// 2. Processa a lista de arquivos
|
|
46
46
|
const linhas = statusOutput.split('\\n').filter(l => l.trim());
|
|
47
47
|
const arquivos = linhas.map(l => {
|
|
48
48
|
const tipo = l.substring(0, 2).trim();
|
|
@@ -53,7 +53,6 @@ try {
|
|
|
53
53
|
const qtd = arquivos.length;
|
|
54
54
|
const nomesArquivos = arquivos.map(a => a.arquivo).join(', ');
|
|
55
55
|
|
|
56
|
-
// Separa título e corpo se for muito longo
|
|
57
56
|
let tituloSugerido = '';
|
|
58
57
|
let corpoSugerido = '';
|
|
59
58
|
|
|
@@ -94,17 +93,13 @@ try {
|
|
|
94
93
|
console.log(' [3] Manual (Digitar sua própria mensagem)');
|
|
95
94
|
|
|
96
95
|
rl.question('\\n👉 Escolha (1-3): ', (msgOpcao) => {
|
|
97
|
-
let comandoGit = '';
|
|
98
|
-
|
|
99
96
|
if (msgOpcao.trim() === '3') {
|
|
100
97
|
rl.question('✍️ Digite a mensagem: ', (manualMsg) => {
|
|
101
98
|
executarCommit(tipo, manualMsg, '');
|
|
102
99
|
});
|
|
103
100
|
} else if (msgOpcao.trim() === '2' && corpoSugerido) {
|
|
104
|
-
// Commit com Título + Corpo (Description)
|
|
105
101
|
executarCommit(tipo, tituloSugerido, corpoSugerido);
|
|
106
102
|
} else {
|
|
107
|
-
// Commit Simples
|
|
108
103
|
executarCommit(tipo, tituloSugerido, '');
|
|
109
104
|
}
|
|
110
105
|
});
|
|
@@ -117,16 +112,12 @@ try {
|
|
|
117
112
|
|
|
118
113
|
function executarCommit(tipo, titulo, corpo) {
|
|
119
114
|
const msgFinal = \`\${tipo}: \${titulo}\`;
|
|
120
|
-
|
|
121
115
|
console.log('\\n⏳ Executando git add .');
|
|
122
116
|
execSync('git add .');
|
|
123
|
-
|
|
124
|
-
console.log(\`⏳ Commitando: "\${msgFinal}"\`);
|
|
125
117
|
|
|
118
|
+
console.log(\`⏳ Commitando: "\${msgFinal}"\`);
|
|
126
119
|
try {
|
|
127
|
-
// Se tiver corpo, usamos -m duas vezes ou uma string multilinha
|
|
128
120
|
if (corpo) {
|
|
129
|
-
// Estratégia segura para multiline no terminal
|
|
130
121
|
execSync(\`git commit -m "\${msgFinal}" -m "\${corpo}"\`, { stdio: 'inherit' });
|
|
131
122
|
} else {
|
|
132
123
|
execSync(\`git commit -m "\${msgFinal}"\`, { stdio: 'inherit' });
|
|
@@ -140,53 +131,122 @@ function executarCommit(tipo, titulo, corpo) {
|
|
|
140
131
|
`;
|
|
141
132
|
|
|
142
133
|
// ==========================================
|
|
143
|
-
// 2.
|
|
134
|
+
// 2. CONFIGURAÇÃO ESLINT (FLAT CONFIG - V9+)
|
|
144
135
|
// ==========================================
|
|
145
|
-
const
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
136
|
+
const CONTEUDO_ESLINT = `const config = [
|
|
137
|
+
{
|
|
138
|
+
ignores: ["node_modules/**", "build.js", "commit.js", "verify.js", "*.zip", "src/assets/js/tailwindcss.js"]
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
files: ["src/**/*.js"],
|
|
142
|
+
languageOptions: {
|
|
143
|
+
ecmaVersion: 2021,
|
|
144
|
+
sourceType: "module",
|
|
145
|
+
globals: {
|
|
146
|
+
window: "readonly",
|
|
147
|
+
document: "readonly",
|
|
148
|
+
console: "readonly",
|
|
149
|
+
alert: "readonly",
|
|
150
|
+
setTimeout: "readonly",
|
|
151
|
+
clearTimeout: "readonly",
|
|
152
|
+
setInterval: "readonly",
|
|
153
|
+
clearInterval: "readonly",
|
|
154
|
+
fetch: "readonly",
|
|
155
|
+
$: "readonly",
|
|
156
|
+
jQuery: "readonly"
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
rules: {
|
|
160
|
+
"no-unused-vars": "warn",
|
|
161
|
+
"no-console": "off",
|
|
162
|
+
"eqeqeq": "warn",
|
|
163
|
+
"curly": "error",
|
|
164
|
+
"no-eval": "error",
|
|
165
|
+
"no-implied-eval": "error",
|
|
166
|
+
"no-alert": "warn"
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
];
|
|
168
170
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
171
|
+
module.exports = config;
|
|
172
|
+
`;
|
|
173
|
+
|
|
174
|
+
// ==========================================
|
|
175
|
+
// 3. SCRIPT DE VERIFICAÇÃO (COMPATÍVEL V9)
|
|
176
|
+
// ==========================================
|
|
177
|
+
const CONTEUDO_VERIFY_JS = `const { ESLint } = require("eslint");
|
|
178
|
+
const fs = require('fs');
|
|
179
|
+
const readline = require('readline');
|
|
180
|
+
|
|
181
|
+
async function verificarCodigo() {
|
|
182
|
+
console.log('\\n🔎 [Check] Iniciando análise de código e segurança...');
|
|
183
|
+
|
|
184
|
+
const eslint = new ESLint({ fix: true });
|
|
185
|
+
|
|
186
|
+
const results = await eslint.lintFiles(["src/**/*.js"]);
|
|
187
|
+
|
|
188
|
+
const arquivosComProblemas = results.filter(r => r.messages.length > 0);
|
|
189
|
+
|
|
190
|
+
if (arquivosComProblemas.length === 0) {
|
|
191
|
+
console.log('✅ [Check] Nenhum problema encontrado. Código limpo!');
|
|
192
|
+
process.exit(0);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const rl = readline.createInterface({
|
|
196
|
+
input: process.stdin,
|
|
197
|
+
output: process.stdout
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
const question = (str) => new Promise(resolve => rl.question(str, resolve));
|
|
201
|
+
|
|
202
|
+
for (const result of arquivosComProblemas) {
|
|
203
|
+
const nomeArquivo = result.filePath.split('src')[1] || result.filePath;
|
|
204
|
+
|
|
205
|
+
console.log(\`\\n--------------------------------------------------\`);
|
|
206
|
+
console.log(\`⚠️ Problemas encontrados em: ...src\${nomeArquivo}\`);
|
|
207
|
+
console.log(\`--------------------------------------------------\`);
|
|
208
|
+
|
|
209
|
+
result.messages.forEach(msg => {
|
|
210
|
+
const gravidade = msg.severity === 2 ? '🔴' : '🟡';
|
|
211
|
+
console.log(\` \${gravidade} [Linha \${msg.line}] \${msg.message} (\${msg.ruleId})\`);
|
|
212
|
+
try {
|
|
213
|
+
const fileContent = fs.readFileSync(result.filePath, 'utf-8').split('\\n');
|
|
214
|
+
if (fileContent[msg.line - 1]) {
|
|
215
|
+
console.log(\` Trecho: "\${fileContent[msg.line - 1].trim()}"\`);
|
|
216
|
+
}
|
|
217
|
+
} catch(e) {}
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
if (result.output && result.output !== result.source) {
|
|
221
|
+
console.log(\`\\n✨ Correção automática disponível.\`);
|
|
222
|
+
const resposta = await question('👉 Deseja aplicar as correções neste arquivo? (s/n): ');
|
|
223
|
+
|
|
224
|
+
if (resposta.toLowerCase() === 's') {
|
|
225
|
+
await ESLint.outputFixes([result]);
|
|
226
|
+
console.log('✅ Correções aplicadas!');
|
|
227
|
+
} else {
|
|
228
|
+
console.log('⏭️ Ignorando alterações.');
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
console.log('\\n🏁 Verificação concluída.');
|
|
234
|
+
rl.close();
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
verificarCodigo().catch((error) => {
|
|
238
|
+
console.error('Erro na verificação:', error);
|
|
239
|
+
process.exit(1);
|
|
240
|
+
});
|
|
241
|
+
`;
|
|
186
242
|
|
|
243
|
+
// ==========================================
|
|
244
|
+
// 4. TEMPLATE DE BUILD (COM VERIFICAÇÃO)
|
|
245
|
+
// ==========================================
|
|
187
246
|
const CONTEUDO_BUILD_JS = `const fs = require('fs');
|
|
188
247
|
const archiver = require('archiver');
|
|
189
248
|
const path = require('path');
|
|
249
|
+
const { execSync } = require('child_process');
|
|
190
250
|
|
|
191
251
|
const CONFIG = {
|
|
192
252
|
MODO_AUTOMATICO: true,
|
|
@@ -202,6 +262,16 @@ let isBuilding = false;
|
|
|
202
262
|
function gerarZip() {
|
|
203
263
|
if (isBuilding) return;
|
|
204
264
|
isBuilding = true;
|
|
265
|
+
|
|
266
|
+
try {
|
|
267
|
+
execSync('node verify.js', { stdio: 'inherit' });
|
|
268
|
+
} catch (e) {
|
|
269
|
+
console.log('❌ Build cancelado: Erro na verificação do código.');
|
|
270
|
+
isBuilding = false;
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
// -----------------------------
|
|
274
|
+
|
|
205
275
|
console.log('📦 [Build] Compactando arquivos...');
|
|
206
276
|
|
|
207
277
|
const output = fs.createWriteStream(path.join(__dirname, CONFIG.NOME_ZIP));
|
|
@@ -239,7 +309,7 @@ if (CONFIG.MODO_AUTOMATICO) {
|
|
|
239
309
|
|
|
240
310
|
pathsToWatch.forEach(targetPath => {
|
|
241
311
|
fs.watch(targetPath, { recursive: true }, (eventType, filename) => {
|
|
242
|
-
if (filename && !filename.includes(CONFIG.NOME_ZIP)) {
|
|
312
|
+
if (filename && !filename.includes(CONFIG.NOME_ZIP) && !filename.includes('.tmp')) {
|
|
243
313
|
clearTimeout(debounceTimeout);
|
|
244
314
|
debounceTimeout = setTimeout(() => {
|
|
245
315
|
console.log(\`📝 Alteração detectada: \${filename}\`);
|
|
@@ -252,8 +322,50 @@ if (CONFIG.MODO_AUTOMATICO) {
|
|
|
252
322
|
`;
|
|
253
323
|
|
|
254
324
|
// ==========================================
|
|
255
|
-
//
|
|
325
|
+
// 5. TEMPLATES ESTÁTICOS
|
|
256
326
|
// ==========================================
|
|
327
|
+
const CONTEUDO_INDEX_JSP = `<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored ="false"%>
|
|
328
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
329
|
+
<%@ page import="java.util.*" %>
|
|
330
|
+
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
|
331
|
+
<%@ taglib prefix="snk" uri="/WEB-INF/tld/sankhyaUtil.tld" %>
|
|
332
|
+
<html>
|
|
333
|
+
<head>
|
|
334
|
+
<meta charset="UTF-8">
|
|
335
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
336
|
+
<title>Meu modelo</title>
|
|
337
|
+
<script src="\${BASE_FOLDER}/src/assets/js/tailwindcss.js"></script>
|
|
338
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
|
339
|
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" />
|
|
340
|
+
<link rel="stylesheet" href="\${BASE_FOLDER}/src/assets/css/style.css">
|
|
341
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@jtandrelevicius/utils-js-library@latest/index.js"></script>
|
|
342
|
+
<snk:load/>
|
|
343
|
+
</head>
|
|
344
|
+
<body>
|
|
345
|
+
<header class="header"></header>
|
|
346
|
+
<main class="main"></main>
|
|
347
|
+
<script type="module" src="\${BASE_FOLDER}/src/main.js"></script>
|
|
348
|
+
</body>
|
|
349
|
+
</html>`;
|
|
350
|
+
|
|
351
|
+
const CONTEUDO_INDEX_HTML = `<!DOCTYPE html>
|
|
352
|
+
<html lang="pt-BR">
|
|
353
|
+
<head>
|
|
354
|
+
<meta charset="UTF-8">
|
|
355
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
356
|
+
<title>Meu modelo</title>
|
|
357
|
+
<script src="src/assets/js/tailwindcss.js"></script>
|
|
358
|
+
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
|
359
|
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" />
|
|
360
|
+
<link rel="stylesheet" href="./src/assets/css/style.css">
|
|
361
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@jtandrelevicius/utils-js-library@latest/index.js"></script>
|
|
362
|
+
<body>
|
|
363
|
+
<header class="header"></header>
|
|
364
|
+
<main class="main"></main>
|
|
365
|
+
<script type="module" src="src/main.js"></script>
|
|
366
|
+
</body>
|
|
367
|
+
</html>`;
|
|
368
|
+
|
|
257
369
|
const CONTEUDO_GITIGNORE_HTML = `node_modules/\n*.zip\n.DS_Store\n`;
|
|
258
370
|
const CONTEUDO_GITIGNORE_GERAL = `node_modules/\n*.zip\n.DS_Store\n`;
|
|
259
371
|
const CONTEUDO_GITIGNORE_JAVA = `node_modules/\nout/\n.idea/workspace.xml\n.idea/usage.statistics.xml\n*.iws\n.DS_Store\n`;
|
|
@@ -274,10 +386,8 @@ function criarArquivo(caminho, conteudo) {
|
|
|
274
386
|
}
|
|
275
387
|
|
|
276
388
|
// ==========================================
|
|
277
|
-
//
|
|
389
|
+
// 6. FUNÇÕES GERADORAS DE PROJETO
|
|
278
390
|
// ==========================================
|
|
279
|
-
|
|
280
|
-
// --- MODELO 1: HTML5 (Web) ---
|
|
281
391
|
function criarProjetoHTML5(raiz, nomeProjeto) {
|
|
282
392
|
const pastas = [
|
|
283
393
|
'src/assets/css',
|
|
@@ -295,7 +405,9 @@ function criarProjetoHTML5(raiz, nomeProjeto) {
|
|
|
295
405
|
criarArquivo(path.join(raiz, 'index.jsp'), CONTEUDO_INDEX_JSP);
|
|
296
406
|
criarArquivo(path.join(raiz, 'index.html'), CONTEUDO_INDEX_HTML);
|
|
297
407
|
criarArquivo(path.join(raiz, 'build.js'), CONTEUDO_BUILD_JS);
|
|
298
|
-
criarArquivo(path.join(raiz, 'commit.js'), CONTEUDO_COMMIT_JS);
|
|
408
|
+
criarArquivo(path.join(raiz, 'commit.js'), CONTEUDO_COMMIT_JS);
|
|
409
|
+
criarArquivo(path.join(raiz, 'verify.js'), CONTEUDO_VERIFY_JS);
|
|
410
|
+
criarArquivo(path.join(raiz, 'eslint.config.js'), CONTEUDO_ESLINT);
|
|
299
411
|
criarArquivo(path.join(raiz, '.gitignore'), CONTEUDO_GITIGNORE_HTML);
|
|
300
412
|
criarArquivo(path.join(raiz, '.gitattributes'), CONTEUDO_GITATTRIBUTES);
|
|
301
413
|
criarArquivo(path.join(raiz, 'README.md'), `# ${nomeProjeto}\n\nProjeto Web (HTML5/JSP) gerado automaticamente.`);
|
|
@@ -307,8 +419,9 @@ function criarProjetoHTML5(raiz, nomeProjeto) {
|
|
|
307
419
|
main: "src/main.js",
|
|
308
420
|
scripts: {
|
|
309
421
|
"build": "node build.js",
|
|
310
|
-
"start": "node build.js",
|
|
311
|
-
"commit": "node commit.js"
|
|
422
|
+
"start": "node build.js",
|
|
423
|
+
"commit": "node commit.js",
|
|
424
|
+
"check": "node verify.js"
|
|
312
425
|
},
|
|
313
426
|
author: "",
|
|
314
427
|
license: "ISC"
|
|
@@ -328,25 +441,15 @@ function criarProjetoHTML5(raiz, nomeProjeto) {
|
|
|
328
441
|
try {
|
|
329
442
|
logPasso('Git', 'Inicializando repositório...');
|
|
330
443
|
execSync('git init', { cwd: raiz, stdio: 'ignore' });
|
|
331
|
-
|
|
332
|
-
|
|
444
|
+
|
|
445
|
+
logPasso('NPM', 'Instalando dependências (ESLint V9)...');
|
|
446
|
+
execSync('npm install archiver eslint', { cwd: raiz, stdio: 'ignore' });
|
|
447
|
+
|
|
333
448
|
} catch (e) { console.error('Erro na configuração:', e.message); }
|
|
334
449
|
}
|
|
335
450
|
|
|
336
|
-
// --- MODELO 2: PERSONALIZACAO (Banco) ---
|
|
337
451
|
function criarProjetoPersonalizacao(raiz, nomeProjeto) {
|
|
338
|
-
const pastas = [
|
|
339
|
-
'doc',
|
|
340
|
-
'src/Dashboard',
|
|
341
|
-
'src/Function',
|
|
342
|
-
'src/Procedure',
|
|
343
|
-
'src/Relatorio',
|
|
344
|
-
'src/SQL',
|
|
345
|
-
'src/Tela',
|
|
346
|
-
'src/Trigger',
|
|
347
|
-
'src/View'
|
|
348
|
-
];
|
|
349
|
-
|
|
452
|
+
const pastas = ['doc','src/Dashboard','src/Function','src/Procedure','src/Relatorio','src/SQL','src/Tela','src/Trigger','src/View'];
|
|
350
453
|
pastas.forEach(p => criarPasta(path.join(raiz, p)));
|
|
351
454
|
|
|
352
455
|
criarArquivo(path.join(raiz, 'commit.js'), CONTEUDO_COMMIT_JS);
|
|
@@ -357,9 +460,7 @@ function criarProjetoPersonalizacao(raiz, nomeProjeto) {
|
|
|
357
460
|
const packageJson = {
|
|
358
461
|
name: nomeProjeto,
|
|
359
462
|
version: "1.0.0",
|
|
360
|
-
scripts: {
|
|
361
|
-
"commit": "node commit.js"
|
|
362
|
-
}
|
|
463
|
+
scripts: { "commit": "node commit.js" }
|
|
363
464
|
};
|
|
364
465
|
criarArquivo(path.join(raiz, 'package.json'), JSON.stringify(packageJson, null, 2));
|
|
365
466
|
|
|
@@ -370,22 +471,10 @@ function criarProjetoPersonalizacao(raiz, nomeProjeto) {
|
|
|
370
471
|
} catch (e) { console.error('Erro no git init:', e.message); }
|
|
371
472
|
}
|
|
372
473
|
|
|
373
|
-
// --- MODELO 3: JAVA (IntelliJ) ---
|
|
374
474
|
function criarProjetoJava(raiz, nomeProjeto) {
|
|
375
475
|
const nomePacote = nomeProjeto.replace(/-/g, '').toLowerCase();
|
|
376
476
|
const basePath = `src/br/com/sankhya/${nomePacote}`;
|
|
377
|
-
|
|
378
|
-
const pastas = [
|
|
379
|
-
'.idea',
|
|
380
|
-
'doc',
|
|
381
|
-
'out',
|
|
382
|
-
`${basePath}/business/agendador`,
|
|
383
|
-
`${basePath}/business/botao`,
|
|
384
|
-
`${basePath}/business/evento`,
|
|
385
|
-
`${basePath}/business/regra`,
|
|
386
|
-
`${basePath}/domain/model`,
|
|
387
|
-
`${basePath}/domain/repository`
|
|
388
|
-
];
|
|
477
|
+
const pastas = ['.idea','doc','out',`${basePath}/business/agendador`,`${basePath}/business/botao`,`${basePath}/business/evento`,`${basePath}/business/regra`,`${basePath}/domain/model`,`${basePath}/domain/repository`];
|
|
389
478
|
|
|
390
479
|
pastas.forEach(p => criarPasta(path.join(raiz, p)));
|
|
391
480
|
|
|
@@ -396,42 +485,17 @@ function criarProjetoJava(raiz, nomeProjeto) {
|
|
|
396
485
|
const packageJson = {
|
|
397
486
|
name: nomeProjeto,
|
|
398
487
|
version: "1.0.0",
|
|
399
|
-
scripts: {
|
|
400
|
-
"commit": "node commit.js"
|
|
401
|
-
}
|
|
488
|
+
scripts: { "commit": "node commit.js" }
|
|
402
489
|
};
|
|
403
490
|
criarArquivo(path.join(raiz, 'package.json'), JSON.stringify(packageJson, null, 2));
|
|
404
491
|
|
|
405
|
-
const modulesXml = `<?xml version="1.0" encoding="UTF-8"
|
|
406
|
-
<project version="4">
|
|
407
|
-
<component name="ProjectModuleManager">
|
|
408
|
-
<modules>
|
|
409
|
-
<module fileurl="file://$PROJECT_DIR$/${nomeProjeto}.iml" filepath="$PROJECT_DIR$/${nomeProjeto}.iml" />
|
|
410
|
-
</modules>
|
|
411
|
-
</component>
|
|
412
|
-
</project>`;
|
|
492
|
+
const modulesXml = `<?xml version="1.0" encoding="UTF-8"?><project version="4"><component name="ProjectModuleManager"><modules><module fileurl="file://$PROJECT_DIR$/${nomeProjeto}.iml" filepath="$PROJECT_DIR$/${nomeProjeto}.iml" /></modules></component></project>`;
|
|
413
493
|
criarArquivo(path.join(raiz, '.idea/modules.xml'), modulesXml);
|
|
414
494
|
|
|
415
|
-
const miscXml = `<?xml version="1.0" encoding="UTF-8"
|
|
416
|
-
<project version="4">
|
|
417
|
-
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
|
418
|
-
<output url="file://$PROJECT_DIR$/out" />
|
|
419
|
-
</component>
|
|
420
|
-
</project>`;
|
|
495
|
+
const miscXml = `<?xml version="1.0" encoding="UTF-8"?><project version="4"><component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"><output url="file://$PROJECT_DIR$/out" /></component></project>`;
|
|
421
496
|
criarArquivo(path.join(raiz, '.idea/misc.xml'), miscXml);
|
|
422
497
|
|
|
423
|
-
const imlContent = `<?xml version="1.0" encoding="UTF-8"
|
|
424
|
-
<module type="JAVA_MODULE" version="4">
|
|
425
|
-
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
426
|
-
<exclude-output />
|
|
427
|
-
<content url="file://$MODULE_DIR$">
|
|
428
|
-
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
|
429
|
-
</content>
|
|
430
|
-
<orderEntry type="inheritedJdk" />
|
|
431
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
432
|
-
<orderEntry type="library" name="libs-java" level="application" />
|
|
433
|
-
</component>
|
|
434
|
-
</module>`;
|
|
498
|
+
const imlContent = `<?xml version="1.0" encoding="UTF-8"?><module type="JAVA_MODULE" version="4"><component name="NewModuleRootManager" inherit-compiler-output="true"><exclude-output /><content url="file://$MODULE_DIR$"><sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /></content><orderEntry type="inheritedJdk" /><orderEntry type="sourceFolder" forTests="false" /><orderEntry type="library" name="libs-java" level="application" /></component></module>`;
|
|
435
499
|
criarArquivo(path.join(raiz, `${nomeProjeto}.iml`), imlContent);
|
|
436
500
|
|
|
437
501
|
console.log(`\n⚙️ CONFIGURANDO AMBIENTE JAVA (IntelliJ)...`);
|
|
@@ -444,7 +508,7 @@ function criarProjetoJava(raiz, nomeProjeto) {
|
|
|
444
508
|
}
|
|
445
509
|
|
|
446
510
|
// ==========================================
|
|
447
|
-
//
|
|
511
|
+
// 7. MENU PRINCIPAL
|
|
448
512
|
// ==========================================
|
|
449
513
|
function iniciar() {
|
|
450
514
|
console.clear();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "web-architect-cli",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -14,12 +14,12 @@
|
|
|
14
14
|
},
|
|
15
15
|
"repository": {
|
|
16
16
|
"type": "git",
|
|
17
|
-
"url": "
|
|
17
|
+
"url": ""
|
|
18
18
|
},
|
|
19
19
|
"author": "Jeferson Tiago Alves Andrelevicius",
|
|
20
20
|
"license": "ISC",
|
|
21
21
|
"bugs": {
|
|
22
|
-
"url": "
|
|
22
|
+
"url": ""
|
|
23
23
|
},
|
|
24
|
-
"homepage": "
|
|
24
|
+
"homepage": ""
|
|
25
25
|
}
|