UNPKG

niledatabase

Version:

Command line interface for Nile databases

49 lines (43 loc) 1.86 kB
#!/usr/bin/env node import { Command } from 'commander'; import { createConnectCommand } from './commands/connect'; import { createWorkspaceCommand } from './commands/workspace'; import { createDbCommand } from './commands/db'; import { createTenantsCommand } from './commands/tenants'; import { configCommand } from './commands/config'; import { createUsersCommand } from './commands/user'; import { createLocalCommand } from './commands/local'; import { createAuthCommand } from './commands/auth'; import { addGlobalOptions, updateChalkConfig } from './lib/globalOptions'; import { version } from '../package.json'; const cli = new Command() .version(version) .description('Nile CLI') .addHelpText('after', ` Examples: $ nile connect Connect to Nile $ nile --no-color db show my-database $ nile tenants list List tenants in selected database $ nile config --api-key <key> Set API key in config $ nile users create Create a new user $ nile local start Start local development environment $ nile auth quickstart --nextjs Set up authentication in a Next.js app $ nile auth env Generate environment variables `); // Add global options addGlobalOptions(cli); // Configure color settings cli.hook('preAction', (thisCommand) => { const opts = thisCommand.opts(); updateChalkConfig(opts.color); }); // Register commands cli.addCommand(createConnectCommand(() => cli.opts())); cli.addCommand(createWorkspaceCommand(() => cli.opts())); cli.addCommand(createDbCommand(() => cli.opts())); cli.addCommand(createTenantsCommand(() => cli.opts())); cli.addCommand(configCommand()); cli.addCommand(createUsersCommand(() => cli.opts())); cli.addCommand(createLocalCommand(() => cli.opts())); cli.addCommand(createAuthCommand(() => cli.opts())); cli.parse(process.argv);