wordlift-cli
Version:
WordLift CLI - A customized CLI for WordLift SEO workflows with agent memory system and smart project directory detection
70 lines (59 loc) • 2.24 kB
JavaScript
/**
* WordLift CLI Post-Install Setup Script
* This script ensures robust WordLift branding across different environments
*/
const fs = require('fs');
const path = require('path');
const { execSync } = require('child_process');
console.log('🚀 Setting up WordLift CLI...');
// Check if this is running during npm install
const isPostInstall = process.env.npm_lifecycle_event === 'postinstall';
const packageDir = isPostInstall ? process.cwd() : path.dirname(__dirname);
async function setupWordLiftCli() {
try {
// 1. Run ASCII art patching
console.log('🎨 Applying ASCII art patches...');
try {
execSync('node scripts/patch-ascii-art.js', {
cwd: packageDir,
stdio: 'inherit'
});
} catch (error) {
console.warn('⚠️ ASCII art patching failed, but continuing with wrapper-only approach');
}
// 2. Ensure wrapper is properly configured
console.log('🔧 Configuring WordLift CLI wrapper...');
const wrapperPath = path.join(packageDir, 'bin/wordlift-cli.js');
if (fs.existsSync(wrapperPath)) {
console.log('✅ WordLift CLI wrapper is ready');
} else {
console.error('❌ WordLift CLI wrapper not found');
process.exit(1);
}
// 3. Create installation status file
const statusFile = path.join(packageDir, '.wordlift-setup-complete');
fs.writeFileSync(statusFile, JSON.stringify({
version: require(path.join(packageDir, 'package.json')).version,
setupDate: new Date().toISOString(),
patchingEnabled: true,
wrapperEnabled: true
}, null, 2));
console.log('');
console.log('🎉 WordLift CLI setup complete!');
console.log('');
console.log('📋 Setup Summary:');
console.log(' ✓ WordLift branding configured');
console.log(' ✓ ASCII art patches applied (where possible)');
console.log(' ✓ Wrapper fallback enabled');
console.log(' ✓ All Gemini CLI features preserved');
console.log('');
console.log('🚀 Ready to use: wordlift-cli');
console.log('');
} catch (error) {
console.error('❌ Setup failed:', error.message);
process.exit(1);
}
}
// Run setup
setupWordLiftCli().catch(console.error);