create-vorpal-kanban 1.0.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/index.js +93 -0
- package/package.json +26 -0
package/index.js
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { program } = require('commander');
|
|
4
|
+
const { execSync } = require('child_process');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const fs = require('fs');
|
|
7
|
+
|
|
8
|
+
const TEMPLATE_REPO = 'https://github.com/GustavoNeneve/kanban-marketing.git';
|
|
9
|
+
|
|
10
|
+
// Função auxiliar para rodar comandos no terminal
|
|
11
|
+
const runCommand = (command, options = {}) => {
|
|
12
|
+
try {
|
|
13
|
+
execSync(command, { stdio: 'inherit', ...options });
|
|
14
|
+
return true;
|
|
15
|
+
} catch (e) {
|
|
16
|
+
console.error(`Falha ao executar comando: ${command}`, e);
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
program
|
|
22
|
+
.name('create-vorpal-kanban')
|
|
23
|
+
.description('CLI para criar e atualizar projetos Vorpal Kanban')
|
|
24
|
+
.version('1.0.0');
|
|
25
|
+
|
|
26
|
+
// COMANDO 1: INIT (CRIAR NOVO PROJETO)
|
|
27
|
+
program
|
|
28
|
+
.command('init <nome-do-projeto>')
|
|
29
|
+
.description('Cria um novo projeto Vorpal Kanban')
|
|
30
|
+
.action((projectName) => {
|
|
31
|
+
const projectPath = path.join(process.cwd(), projectName);
|
|
32
|
+
|
|
33
|
+
if (fs.existsSync(projectPath)) {
|
|
34
|
+
console.error(`❌ A pasta ${projectName} já existe.`);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
console.log(`🚀 Criando Vorpal Kanban em: ${projectPath}\n`);
|
|
39
|
+
|
|
40
|
+
// 1. Clona o repositório
|
|
41
|
+
console.log('📦 Baixando os arquivos base...');
|
|
42
|
+
const cloneSuccess = runCommand(`git clone ${TEMPLATE_REPO} ${projectName}`);
|
|
43
|
+
if (!cloneSuccess) process.exit(1);
|
|
44
|
+
|
|
45
|
+
// 2. Renomeia o remote "origin" original para "vorpal-upstream"
|
|
46
|
+
console.log('🔧 Configurando o git...');
|
|
47
|
+
runCommand(`git remote rename origin vorpal-upstream`, { cwd: projectPath });
|
|
48
|
+
|
|
49
|
+
// 3. Instala as dependências do Next.js
|
|
50
|
+
console.log('⚙️ Instalando dependências (isso pode demorar um pouco)...');
|
|
51
|
+
runCommand('npm install', { cwd: projectPath });
|
|
52
|
+
|
|
53
|
+
console.log(`\n✅ Sucesso! Seu Kanban foi criado.`);
|
|
54
|
+
console.log(`Para começar:`);
|
|
55
|
+
console.log(` cd ${projectName}`);
|
|
56
|
+
console.log(` npm run dev`);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
// COMANDO 2: UPDATE (ATUALIZAR PROJETO EXISTENTE)
|
|
60
|
+
program
|
|
61
|
+
.command('update')
|
|
62
|
+
.description('Puxa as últimas atualizações do Vorpal Kanban core')
|
|
63
|
+
.action(() => {
|
|
64
|
+
const currentPath = process.cwd();
|
|
65
|
+
|
|
66
|
+
if (!fs.existsSync(path.join(currentPath, '.git'))) {
|
|
67
|
+
console.error('❌ Este diretório não é um repositório Git. Não é possível atualizar.');
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
console.log('🔄 Verificando atualizações no Vorpal Kanban...');
|
|
72
|
+
|
|
73
|
+
try {
|
|
74
|
+
// Puxa as alterações do repositório original (que chamamos de vorpal-upstream)
|
|
75
|
+
runCommand(`git fetch vorpal-upstream`);
|
|
76
|
+
console.log('📥 Mesclando atualizações (Merge)...');
|
|
77
|
+
|
|
78
|
+
const mergeSuccess = runCommand(`git merge vorpal-upstream/main --allow-unrelated-histories -m "chore: atualizando core via vorpalKanban"`);
|
|
79
|
+
|
|
80
|
+
if (!mergeSuccess) {
|
|
81
|
+
console.log('\n⚠️ Encontramos conflitos. Você alterou arquivos que também foram atualizados na base.');
|
|
82
|
+
console.log('Por favor, abra seu editor (como o VS Code), resolva os conflitos nos arquivos marcados e depois faça o commit.');
|
|
83
|
+
} else {
|
|
84
|
+
console.log('\n✨ Atualização concluída com sucesso!');
|
|
85
|
+
console.log('Dica: Lembre-se de rodar "npm install" caso alguma dependência nova tenha sido adicionada.');
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
} catch (error) {
|
|
89
|
+
console.error('❌ Falha ao tentar atualizar o projeto.');
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
program.parse();
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "create-vorpal-kanban",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "CLI para criar e atualizar projetos Vorpal Kanban",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"create-vorpal-kanban": "index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"vorpal",
|
|
14
|
+
"kanban",
|
|
15
|
+
"cli",
|
|
16
|
+
"nextjs"
|
|
17
|
+
],
|
|
18
|
+
"author": "",
|
|
19
|
+
"license": "ISC",
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"chalk": "^4.1.2",
|
|
22
|
+
"commander": "^11.0.0",
|
|
23
|
+
"fs-extra": "^11.1.1",
|
|
24
|
+
"ora": "^5.4.1"
|
|
25
|
+
}
|
|
26
|
+
}
|