UNPKG

@marteye/studio-cli

Version:

CLI for MartEye Studio API

92 lines (86 loc) 3.26 kB
#!/usr/bin/env node 'use strict'; var commander = require('commander'); var chalk = require('chalk'); var dotenv = require('dotenv'); var globalOptions = require('./utils/global-options.js'); var market = require('./commands/market.js'); var sales = require('./commands/sales.js'); var lots = require('./commands/lots.js'); var lotItems = require('./commands/lot-items.js'); var customers = require('./commands/customers.js'); var search = require('./commands/search.js'); var config = require('./commands/config.js'); var settings = require('./commands/settings.js'); var adjustments = require('./commands/adjustments.js'); var productCodes = require('./commands/product-codes.js'); var taxRates = require('./commands/tax-rates.js'); var webhooks = require('./commands/webhooks.js'); var actions = require('./commands/actions.js'); var bidderApps = require('./commands/bidder-apps.js'); var files = require('./commands/files.js'); var utils = require('./commands/utils.js'); var completion = require('./commands/completion.js'); const { version } = require('../package.json'); // Load environment variables dotenv.config(); const program = new commander.Command(); program .name('studio') .description('CLI for MartEye Studio API') .version(version) .addHelpText('after', ` Tab Completion: Enable tab completion for faster command entry: $ studio completion setup This will auto-detect your shell and set up completions. After setup, restart your terminal or source your shell config. Examples: $ studio market get greenfields $ studio sales list greenfields --start 2024-01-01 $ studio lots get greenfields sale123 lot456 --format table $ studio config init For more information, see the full documentation: https://github.com/marteye/studio-cli`); // Setup global options globalOptions.setupGlobalOptions(program); // Add commands program.addCommand(market.marketCommand()); program.addCommand(sales.salesCommand()); program.addCommand(lots.lotsCommand()); program.addCommand(lotItems.lotItemsCommand()); program.addCommand(customers.customersCommand()); program.addCommand(search.searchCommand()); program.addCommand(config.configCommand()); program.addCommand(settings.settingsCommand()); program.addCommand(adjustments.adjustmentsCommand()); program.addCommand(productCodes.productCodesCommand()); program.addCommand(taxRates.taxRatesCommand()); program.addCommand(webhooks.webhooksCommand()); program.addCommand(actions.actionsCommand()); program.addCommand(bidderApps.bidderAppsCommand()); program.addCommand(files.filesCommand()); program.addCommand(utils.utilsCommand()); program.addCommand(completion.completionCommand()); // Error handling program.exitOverride(); async function main() { try { await program.parseAsync(process.argv); } catch (error) { if (error.code === 'commander.missingArgument') { console.error(chalk.red('Error:'), error.message); process.exit(2); } else if (error.code === 'commander.helpDisplayed') { process.exit(0); } else { console.error(chalk.red('Error:'), error.message || error); process.exit(1); } } } main(); //# sourceMappingURL=cli.js.map