deploy-webapp 1.0.1 → 1.0.4
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/install.js +53 -13
- package/package.json +1 -1
package/install.js
CHANGED
|
@@ -4,7 +4,42 @@ const path = require('path');
|
|
|
4
4
|
// Caminho do pacote instalado
|
|
5
5
|
const packagePath = __dirname;
|
|
6
6
|
const utilsPath = path.join(packagePath, 'src', 'utils');
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
// Encontrar a raiz do projeto (subir de node_modules até encontrar package.json do projeto)
|
|
9
|
+
function findProjectRoot(startPath) {
|
|
10
|
+
// Se estamos em node_modules, subir até a raiz do projeto
|
|
11
|
+
if (startPath.includes('node_modules')) {
|
|
12
|
+
// Encontrar o índice de node_modules e pegar o diretório pai
|
|
13
|
+
const nodeModulesIndex = startPath.indexOf('node_modules');
|
|
14
|
+
const candidateRoot = startPath.substring(0, nodeModulesIndex);
|
|
15
|
+
|
|
16
|
+
// Normalizar o caminho (remover barra final se houver)
|
|
17
|
+
const normalizedRoot = candidateRoot.replace(/[\/\\]$/, '');
|
|
18
|
+
|
|
19
|
+
// Verificar se existe package.json nesse diretório (raiz do projeto)
|
|
20
|
+
const packageJsonPath = path.join(normalizedRoot, 'package.json');
|
|
21
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
22
|
+
// Verificar se não é o package.json do próprio pacote deploy-webapp
|
|
23
|
+
try {
|
|
24
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
25
|
+
if (packageJson.name !== 'deploy-webapp') {
|
|
26
|
+
return normalizedRoot;
|
|
27
|
+
}
|
|
28
|
+
} catch (e) {
|
|
29
|
+
// Se não conseguir ler, assumir que é a raiz
|
|
30
|
+
return normalizedRoot;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Se não encontrou package.json, ainda assim usar o diretório acima de node_modules
|
|
34
|
+
return normalizedRoot;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Fallback: usar process.cwd() (diretório onde o comando foi executado)
|
|
38
|
+
// Isso funciona porque quando yarn/npm instala, o cwd é a raiz do projeto
|
|
39
|
+
return process.cwd();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const projectRoot = findProjectRoot(packagePath);
|
|
8
43
|
|
|
9
44
|
// Arquivos a serem copiados (com seus caminhos de origem)
|
|
10
45
|
const filesToCopy = [
|
|
@@ -13,16 +48,18 @@ const filesToCopy = [
|
|
|
13
48
|
{ source: path.join(packagePath, 'README.md'), dest: 'README.md' }
|
|
14
49
|
];
|
|
15
50
|
|
|
16
|
-
console.log('📦 deploy-webapp: Configurando arquivos de configuração...');
|
|
17
|
-
|
|
18
51
|
// Verificar se estamos em node_modules (instalação do pacote)
|
|
19
52
|
const isInstalled = packagePath.includes('node_modules');
|
|
20
53
|
|
|
21
54
|
if (!isInstalled) {
|
|
22
|
-
|
|
55
|
+
// Modo desenvolvimento - não fazer nada
|
|
23
56
|
process.exit(0);
|
|
24
57
|
}
|
|
25
58
|
|
|
59
|
+
console.log('📦 deploy-webapp: Configurando arquivos de configuração...');
|
|
60
|
+
console.log(` 📍 Pacote instalado em: ${packagePath}`);
|
|
61
|
+
console.log(` 📍 Raiz do projeto: ${projectRoot}`);
|
|
62
|
+
|
|
26
63
|
// Criar função para copiar arquivo
|
|
27
64
|
function copyFileIfNotExists(sourcePath, destFile) {
|
|
28
65
|
const destPath = path.join(projectRoot, destFile);
|
|
@@ -33,9 +70,9 @@ function copyFileIfNotExists(sourcePath, destFile) {
|
|
|
33
70
|
return false;
|
|
34
71
|
}
|
|
35
72
|
|
|
36
|
-
// Se o arquivo destino já existe, não sobrescrever
|
|
73
|
+
// Se o arquivo destino já existe, não sobrescrever (protege configurações do usuário)
|
|
37
74
|
if (fs.existsSync(destPath)) {
|
|
38
|
-
console.log(`ℹ️ deploy-webapp: ${destFile} já existe, mantendo arquivo existente.`);
|
|
75
|
+
console.log(`ℹ️ deploy-webapp: ${destFile} já existe na raiz do projeto, mantendo arquivo existente.`);
|
|
39
76
|
return false;
|
|
40
77
|
}
|
|
41
78
|
|
|
@@ -59,13 +96,16 @@ filesToCopy.forEach(({ source, dest }) => {
|
|
|
59
96
|
});
|
|
60
97
|
|
|
61
98
|
if (copiedCount > 0) {
|
|
62
|
-
console.log(`\n✨ deploy-webapp: ${copiedCount} arquivo(s) de configuração criado(s) na raiz do projeto
|
|
63
|
-
console.log(
|
|
64
|
-
console.log('
|
|
65
|
-
console.log('
|
|
66
|
-
console.log('
|
|
67
|
-
console.log('
|
|
99
|
+
console.log(`\n✨ deploy-webapp: ${copiedCount} arquivo(s) de configuração criado(s) automaticamente na raiz do projeto!`);
|
|
100
|
+
console.log(`\n📝 Arquivos criados em: ${projectRoot}`);
|
|
101
|
+
console.log('\n📋 Próximos passos:');
|
|
102
|
+
console.log(' 1. ✏️ Edite ids.csv com os IDs dos workflows que deseja migrar');
|
|
103
|
+
console.log(' 2. ✏️ Edite updateWorkflow.json com suas configurações específicas');
|
|
104
|
+
console.log(' 3. 🔐 Crie o arquivo .env na raiz com suas credenciais (veja README.md)');
|
|
105
|
+
console.log(' 4. 🚀 Crie um arquivo migrate.js e execute: node migrate.js\n');
|
|
106
|
+
console.log('💡 Dica: Os arquivos já estão prontos para edição na raiz do seu projeto!\n');
|
|
68
107
|
} else {
|
|
69
|
-
console.log('\nℹ️ deploy-webapp: Todos os arquivos de configuração já existem
|
|
108
|
+
console.log('\nℹ️ deploy-webapp: Todos os arquivos de configuração já existem na raiz do projeto.');
|
|
109
|
+
console.log(' Se precisar recriar, delete os arquivos e reinstale o pacote.\n');
|
|
70
110
|
}
|
|
71
111
|
|