53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| #!/usr/bin/env node
 | |
| 
 | |
| const { spawnSync } = require('child_process');
 | |
| 
 | |
| const commands = {
 | |
|   migrate: {
 | |
|     description: 'Run migrations to update to the latest major SDK version',
 | |
|     fn: () => {
 | |
|       const result = spawnSync(
 | |
|         'npx',
 | |
|         [
 | |
|           '-y',
 | |
|           'https://github.com/stainless-api/migrate-ts/releases/download/0.0.3/stainless-api-migrate-0.0.3.tgz',
 | |
|           '--migrationConfig',
 | |
|           require.resolve('./migration-config.json'),
 | |
|           ...process.argv.slice(3),
 | |
|         ],
 | |
|         { stdio: 'inherit' },
 | |
|       );
 | |
|       if (result.status !== 0) {
 | |
|         process.exit(result.status);
 | |
|       }
 | |
|     },
 | |
|   },
 | |
| };
 | |
| 
 | |
| function exitWithHelp() {
 | |
|   console.log(`Usage: openai <subcommand>`);
 | |
|   console.log();
 | |
|   console.log('Subcommands:');
 | |
| 
 | |
|   for (const [name, info] of Object.entries(commands)) {
 | |
|     console.log(`  ${name}  ${info.description}`);
 | |
|   }
 | |
| 
 | |
|   console.log();
 | |
|   process.exit(1);
 | |
| }
 | |
| 
 | |
| if (process.argv.length < 3) {
 | |
|   exitWithHelp();
 | |
| }
 | |
| 
 | |
| const commandName = process.argv[2];
 | |
| 
 | |
| const command = commands[commandName];
 | |
| if (!command) {
 | |
|   console.log(`Unknown subcommand ${commandName}.`);
 | |
|   exitWithHelp();
 | |
| }
 | |
| 
 | |
| command.fn();
 |