UNPKG

php-universal-mcp-server

Version:

Servidor MCP universal para desenvolvimento PHP e criação de sites em qualquer provedor de hospedagem

122 lines (108 loc) 3.59 kB
/** * Script de preparação para publicação no NPM * * Este script prepara o projeto para publicação: * 1. Verifica dependências necessárias * 2. Cria estrutura de diretórios necessária * 3. Compila arquivos quando necessário */ const fs = require('fs'); const path = require('path'); const { execSync } = require('child_process'); console.log('Preparando PHP Universal MCP Server para publicação...'); // Verifica se o diretório sites existe const sitesDir = path.join(process.cwd(), 'sites'); if (!fs.existsSync(sitesDir)) { console.log('Criando diretório sites...'); fs.mkdirSync(sitesDir, { recursive: true }); } // Verifica se o diretório templates existe const templatesDir = path.join(process.cwd(), 'templates'); if (!fs.existsSync(templatesDir)) { console.log('Criando diretório templates...'); fs.mkdirSync(templatesDir, { recursive: true }); // Cria um template padrão const defaultTemplateDir = path.join(templatesDir, 'default'); fs.mkdirSync(defaultTemplateDir, { recursive: true }); // Cria um arquivo index.php básico const indexPhpPath = path.join(defaultTemplateDir, 'index.php'); fs.writeFileSync(indexPhpPath, `<?php /** * Template padrão do PHP Universal MCP Server */ ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>{{siteName}}</title> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 20px; background-color: #f5f5f5; } .container { max-width: 800px; margin: 0 auto; background-color: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } h1 { color: #333; } p { line-height: 1.6; } .footer { margin-top: 30px; text-align: center; font-size: 0.8em; color: #666; } </style> </head> <body> <div class="container"> <h1>Bem-vindo ao {{siteName}}</h1> <p>Este site foi criado com o PHP Universal MCP Server.</p> <p>Você pode personalizar este template conforme suas necessidades.</p> <div class="footer"> &copy; <?= date('Y') ?> {{siteName}} - Todos os direitos reservados </div> </div> </body> </html>`, 'utf8'); console.log('Template padrão criado com sucesso.'); } // Verifica se o diretório "mock-data" existe na pasta "providers" const mockDataDir = path.join(process.cwd(), 'src', 'providers', 'mock-data'); if (!fs.existsSync(mockDataDir)) { console.log('Criando diretório mock-data...'); fs.mkdirSync(mockDataDir, { recursive: true }); // Cria um arquivo de dados simulados padrão const defaultDataPath = path.join(mockDataDir, 'default.json'); fs.writeFileSync(defaultDataPath, JSON.stringify({ sites: [], status: { isRunning: true, uptime: '0 minutes', version: '1.0.0' } }, null, 2), 'utf8'); console.log('Arquivo de dados simulados criado com sucesso.'); } // Verifica se a dependência basic-ftp está instalada try { console.log('Verificando dependências...'); require.resolve('basic-ftp'); console.log('Dependência basic-ftp está instalada.'); } catch (error) { console.log('Instalando dependência basic-ftp...'); execSync('npm install basic-ftp --save', { stdio: 'inherit' }); } console.log('Preparação concluída com sucesso!');