docubotai
Version:
A CLI tool for interacting with docubotai service
79 lines (63 loc) • 2.86 kB
JavaScript
#!/usr/bin/env node
const { program } = require('commander');
const package = require('../package.json');
// Command handlers
const login = require('./commands/login');
const add = require('./commands/add');
const remove = require('./commands/remove');
const clear = require('./commands/clear');
const update = require('./commands/update');
const config = require('./commands/config');
const logout = require('./commands/logout');
const status = require('./commands/status');
const generateDocs = require('./commands/generate-docs');
const listProjects = require('./commands/list-projects');
const uninstall = require('./commands/uninstall');
program
.name('docubotai')
.description('Interact with docubotai API to document your codebase')
.version(package.version);
program.command('login').description('Authenticate with docubotai API').action(login);
program
.command('add')
.description('Add files to staging area for documentation')
.argument('<files...>', 'Files or glob patterns to stage')
.action(add);
program
.command('remove')
.description('Remove files from staging area')
.argument('<files...>', 'Files or glob patterns to remove')
.action(remove);
program.command('clear').description('Clear all files from staging area').action(clear);
program
.command('update')
.description('Process staged files and update documentation')
.option('-w, --wait', 'Wait for documentation to complete')
.action(update);
program
.command('config')
.description('View or set configuration values')
.option('-k, --key <key>', 'Set API key')
.option('-u, --url <url>', 'Set API URL (e.g., http://localhost:3000/api for local development)')
.option('-r, --reset-url', 'Reset API URL to default based on current environment')
.option('-d, --development', 'Use development environment (localhost:3000)')
.option('-p, --production', 'Use production environment (docubotai.app)')
.action(config);
program.command('logout').description('Clear stored API credentials').action(logout);
program.command('status').description('Show files staged for documentation').action(status);
program
.command('generate-docs')
.description('Generate documentation for all files in a directory')
.argument('[directory]', 'Directory to scan for files (default: current directory)')
.option('-p, --project <project-id>', 'Project identifier (default: directory name)')
.action(generateDocs);
program
.command('list-projects')
.description('List all projects you have access to')
.option('-s, --select', 'Select a project and return its ID')
.action(listProjects);
program
.command('uninstall')
.description('Uninstall the DocubotAI CLI and clean up all local configurations')
.action(uninstall);
program.parse(process.argv);