@followthecode/cli 1.2.11 → 1.2.13

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@followthecode/cli",
3
- "version": "1.2.11",
3
+ "version": "1.2.13",
4
4
  "description": "CLI tool for Git repository analysis and data collection",
5
5
  "main": "index.js",
6
6
  "license": "UNLICENSED",
@@ -20,7 +20,7 @@
20
20
  "setup": "npm run copy-config && npm run set-permissions",
21
21
  "copy-config": "node scripts/copy-config.js",
22
22
  "set-permissions": "node scripts/set-permissions.js",
23
- "postinstall": "node scripts/install-wrapper.js",
23
+ "postinstall": "node scripts/post-install.js",
24
24
  "test": "dotnet test",
25
25
  "test:install": "npm run test:install:win",
26
26
  "test:install:win": "powershell -ExecutionPolicy Bypass -File scripts/test-simple.ps1",
@@ -79,6 +79,7 @@
79
79
  "scripts/copy-config.js",
80
80
  "scripts/set-permissions.js",
81
81
  "scripts/install-wrapper.js",
82
+ "scripts/post-install.js",
82
83
  "scripts/README.md",
83
84
  "README.md",
84
85
  "LICENSE",
@@ -74,14 +74,40 @@ if (ftcShellExists) {
74
74
  // Copia arquivo de configuração para o diretório de instalação global
75
75
  function copyConfigFile() {
76
76
  try {
77
- const configSource = path.join(__dirname, '..', 'bin', 'linux-x64', 'appsettings.json');
78
- const configDest = path.join(__dirname, '..', 'appsettings.json');
77
+ // Tenta diferentes locais para o arquivo de configuração
78
+ const possibleSources = [
79
+ path.join(__dirname, '..', 'bin', 'linux-x64', 'appsettings.json'),
80
+ path.join(__dirname, '..', 'bin', 'win-x64', 'appsettings.json'),
81
+ path.join(__dirname, '..', 'bin', 'osx-x64', 'appsettings.json'),
82
+ path.join(__dirname, '..', 'appsettings.json')
83
+ ];
79
84
 
80
- if (fs.existsSync(configSource)) {
81
- fs.copyFileSync(configSource, configDest);
82
- console.log('✅ Arquivo de configuração copiado para o diretório raiz');
83
- } else {
84
- console.warn('⚠️ Arquivo de configuração não encontrado');
85
+ let configSource = null;
86
+ for (const source of possibleSources) {
87
+ if (fs.existsSync(source)) {
88
+ configSource = source;
89
+ break;
90
+ }
91
+ }
92
+
93
+ if (!configSource) {
94
+ console.warn('⚠️ Arquivo de configuração não encontrado em nenhum local');
95
+ return;
96
+ }
97
+
98
+ // Copia para múltiplos locais para garantir que funcione
99
+ const destinations = [
100
+ path.join(__dirname, '..', 'appsettings.json'), // Raiz do pacote
101
+ path.join(process.cwd(), 'appsettings.json') // Diretório atual
102
+ ];
103
+
104
+ for (const dest of destinations) {
105
+ try {
106
+ fs.copyFileSync(configSource, dest);
107
+ console.log(`✅ Arquivo de configuração copiado para: ${dest}`);
108
+ } catch (error) {
109
+ console.warn(`⚠️ Erro ao copiar para ${dest}:`, error.message);
110
+ }
85
111
  }
86
112
  } catch (error) {
87
113
  console.warn('⚠️ Erro ao copiar arquivo de configuração:', error.message);
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+
6
+ console.log('🔧 Configurando FTC CLI após instalação...');
7
+
8
+ // Função para copiar arquivo de configuração
9
+ function copyConfigFile() {
10
+ try {
11
+ // Tenta diferentes locais para o arquivo de configuração
12
+ const possibleSources = [
13
+ path.join(__dirname, '..', 'bin', 'linux-x64', 'appsettings.json'),
14
+ path.join(__dirname, '..', 'bin', 'win-x64', 'appsettings.json'),
15
+ path.join(__dirname, '..', 'bin', 'osx-x64', 'appsettings.json'),
16
+ path.join(__dirname, '..', 'appsettings.json')
17
+ ];
18
+
19
+ let configSource = null;
20
+ for (const source of possibleSources) {
21
+ if (fs.existsSync(source)) {
22
+ configSource = source;
23
+ console.log(`📁 Arquivo de configuração encontrado em: ${source}`);
24
+ break;
25
+ }
26
+ }
27
+
28
+ if (!configSource) {
29
+ console.error('❌ Arquivo de configuração não encontrado!');
30
+ console.error('💡 Verifique se o pacote foi compilado corretamente.');
31
+ return false;
32
+ }
33
+
34
+ // Copia para o diretório de instalação global
35
+ const globalDest = path.join(__dirname, '..', 'appsettings.json');
36
+ fs.copyFileSync(configSource, globalDest);
37
+ console.log(`✅ Arquivo de configuração copiado para: ${globalDest}`);
38
+
39
+ return true;
40
+ } catch (error) {
41
+ console.error('❌ Erro ao copiar arquivo de configuração:', error.message);
42
+ return false;
43
+ }
44
+ }
45
+
46
+ // Função para definir permissões
47
+ function setPermissions() {
48
+ try {
49
+ const ftcJsPath = path.join(__dirname, '..', 'bin', 'ftc.js');
50
+ const ftcShellPath = path.join(__dirname, '..', 'bin', 'ftc');
51
+
52
+ if (fs.existsSync(ftcJsPath)) {
53
+ fs.chmodSync(ftcJsPath, 0o755);
54
+ console.log('✅ Permissões definidas para ftc.js');
55
+ }
56
+
57
+ if (fs.existsSync(ftcShellPath)) {
58
+ fs.chmodSync(ftcShellPath, 0o755);
59
+ console.log('✅ Permissões definidas para ftc (shell)');
60
+ }
61
+
62
+ return true;
63
+ } catch (error) {
64
+ console.warn('⚠️ Erro ao definir permissões:', error.message);
65
+ return false;
66
+ }
67
+ }
68
+
69
+ // Executa as configurações
70
+ const configSuccess = copyConfigFile();
71
+ const permissionsSuccess = setPermissions();
72
+
73
+ if (configSuccess && permissionsSuccess) {
74
+ console.log('🎉 FTC CLI configurado com sucesso!');
75
+ console.log('💡 Execute: ftc --help');
76
+ } else {
77
+ console.error('❌ Alguns problemas foram encontrados durante a configuração.');
78
+ process.exit(1);
79
+ }