/** * Module build command * * Executes module build scripts (Ansible playbooks) for imported modules */ import { getDb } from '../../db/client'; import { buildModuleFromSource } from '../../services/module-build'; import { getArg, validateRequiredArgs } from '../parser'; import type { CommandResult } from '../types'; /** * Handle module build command * * Usage: * celilo module build * * @param args - Command arguments * @param flags - Command flags (unused) * @returns Command result */ export async function handleModuleBuild( args: string[], _flags: Record, ): Promise { // Validate arguments const error = validateRequiredArgs(args, 1); if (error) { return { success: false, error: `${error}\n\nUsage:\n celilo module build `, }; } const moduleId = getArg(args, 0); if (!moduleId) { return { success: false, error: 'Module ID is required', }; } const db = getDb(); const result = await buildModuleFromSource(moduleId, db); if (!result.success) { return { success: false, error: result.error || 'Build failed', }; } return { success: true, message: `✓ Build successful\nArtifacts: ${result.artifacts?.join(', ') || 'none'}`, data: { artifacts: result.artifacts, }, }; }