UNPKG

organ-ai-zer

Version:

AI-powered file organizer CLI tool

52 lines 2.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.organize = organize; const file_scanner_1 = require("../services/file-scanner"); const ai_organizer_1 = require("../services/ai-organizer"); const file_organizer_1 = require("../services/file-organizer"); const config_service_1 = require("../services/config-service"); async function organize(directory, options) { try { console.log(`Starting organization of: ${directory}`); if (options.dryRun) { console.log('🔍 Running in dry-run mode - no files will be moved'); } // Initialize config service const configService = config_service_1.ConfigService.getInstance(options.config); const config = await configService.loadConfig(); // Validate API key const hasValidKey = await configService.validateApiKey(); if (!hasValidKey) { console.log('💡 Run "organ-ai-zer init" to set up your configuration'); process.exit(1); } const scanner = new file_scanner_1.FileScanner(); const files = await scanner.scanDirectory(directory, options.recursive || false); console.log(`📁 Found ${files.length} files to process`); const aiOrganizer = new ai_organizer_1.AIOrganizer(configService); const useCache = !options.noCache; const suggestions = await aiOrganizer.generateSuggestions(files, useCache); console.log(`🤖 Generated ${suggestions.length} organization suggestions`); if (options.dryRun) { suggestions.forEach(suggestion => { console.log(`📄 ${suggestion.file.name}${suggestion.suggestedPath}`); console.log(` Reason: ${suggestion.reason} (${Math.round(suggestion.confidence * 100)}% confident)`); }); return; } // Create backup if enabled if (config.organization.createBackups) { const fileOrganizer = new file_organizer_1.FileOrganizer(); const backupPath = await fileOrganizer.createBackup(directory); console.log(`📦 Backup created: ${backupPath}`); } const fileOrganizer = new file_organizer_1.FileOrganizer(); await fileOrganizer.applySuggestions(suggestions); console.log('✅ Organization complete!'); } catch (error) { console.error('❌ Error during organization:', error); process.exit(1); } } //# sourceMappingURL=organize.js.map