@marteye/studio-cli
Version:
CLI for MartEye Studio API
92 lines (86 loc) • 3.26 kB
JavaScript
;
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