UNPKG

gogo-movement-starter

Version:

GOGO Movement Network React Starter Template - Complete React + Vite + Move contracts setup

90 lines (75 loc) 2.93 kB
#!/usr/bin/env node import readline from 'readline'; import fs from 'fs'; import path from 'path'; async function setupMovementEnvironment() { // Check if setup has already been run const setupMarkerFile = path.join(process.cwd(), '.gogo-setup-complete'); if (fs.existsSync(setupMarkerFile)) { console.log('✅ GOGO setup already completed. Run "npm run setup-movement" to reconfigure.'); return true; } console.log(''); console.log('🎯 Complete Movement Network Setup'); console.log('==================================='); console.log(''); console.log('Your GOGO starter template is ready! 🎉'); console.log(''); console.log('Would you like to add Move smart contract development?'); console.log(''); console.log('This will:'); console.log('• Set up Aptos CLI with Movement Network configuration'); console.log('• Create a contracts/ folder in your template'); console.log('• Initialize your first Move project with demo functions'); console.log(''); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const question = (query) => new Promise((resolve) => rl.question(query, resolve)); try { const runSetup = await question('Add Move contracts to your template? (y/n, default: y): ') || 'y'; if (runSetup.toLowerCase() === 'y' || runSetup.toLowerCase() === 'yes') { rl.close(); console.log(''); console.log('🚀 Adding Move contract development to your GOGO template...'); console.log(''); // Import and run the setup script const { setupGuide } = await import('./setup-movement.js'); const success = await setupGuide(); // Create marker file to prevent duplicate runs if (success) { fs.writeFileSync(setupMarkerFile, new Date().toISOString()); } return success; } else { rl.close(); console.log(''); console.log('📋 No problem! Your GOGO template is ready to use.'); console.log('Run "npm run setup-movement" later to add Move contracts.'); console.log('Or run "npm run dev" to start building with GOGO!'); console.log(''); return true; } } catch (error) { rl.close(); console.error('❌ Setup failed:', error.message); return false; } } // Export the setup function export { setupMovementEnvironment }; // Only run setup if this file is executed directly if (import.meta.url === `file://${process.argv[1]}`) { setupMovementEnvironment().then(success => { if (success) { console.log('✅ Ready to create your Movement Network project!'); } else { console.log('❌ Setup failed.'); process.exit(1); } }).catch(error => { console.error('❌ Setup failed:', error.message); process.exit(1); }); }