@ace-sdk/cli
Version:
ACE CLI - Command-line tool for intelligent pattern learning and playbook management
45 lines • 1.65 kB
JavaScript
/**
* Export playbook command
*/
import { writeFileSync } from 'fs';
import { globalOptions } from '../cli.js';
import { createContext } from '../types/config.js';
import { ACEServerClient } from '../services/server-client.js';
import { Logger } from '../services/logger.js';
import chalk from 'chalk';
/**
* Export playbook to JSON
*/
export async function exportCommand(options) {
const logger = new Logger(globalOptions);
const spinner = logger.spinner('Exporting playbook...');
try {
const context = await createContext({ org: globalOptions.org, project: globalOptions.project });
const client = new ACEServerClient(context, logger);
const result = await client.getPlaybook({ forceRefresh: false, include_metadata: false });
spinner?.succeed('Playbook exported');
const jsonOutput = JSON.stringify(result.playbook, null, 2);
if (options.output) {
// Write to file
writeFileSync(options.output, jsonOutput);
if (!logger.isJson()) {
logger.info(chalk.green(`\n✅ Playbook exported to ${options.output}\n`));
}
}
else {
// Write to stdout
logger.output(jsonOutput);
}
}
catch (error) {
spinner?.fail('Failed to export playbook');
if (logger.isJson()) {
logger.output({ error: error instanceof Error ? error.message : String(error) });
}
else {
logger.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
}
process.exit(1);
}
}
//# sourceMappingURL=export.js.map